Me again,
what I really dont understand is the behaivour of R here.
notice, elem is not written in "brackets", why it is interpreted as
string and not as a variable?
I would expect an error "elem not found" because it is not defined as
variable, but in contrary it is accepted as column name, see below:
> a = c('one','two','three')
> data =c()
> data=cbind(elem = 2,data)
> data
elem
[1,]2
> data=cbind('elem' = 2,data)
> data
elem elem
[1,]22
> elem
Fehler: Objekt 'elem' nicht gefunden
pedro
On 26.03.2012 17:22, Prof. Dr. Pedro Martinez Arbizu wrote:
HI, thanks Weidong, Henrique,
this works for the example (may be a bad example, but it should be as
simple as possible),
This is however only a workaround to name the columns of a dataframe,
but is not addressing the problem itself, that is, how can I
substitute a string (used as argument in a function) within a function
call in a for-loop??
I dont know if I have explain myself,
something like this works well:
> a = c('one','two','three')
data= c()
for(elem in a){data=cbind('title' = elem,data)}
data
title title title
[1,] "three" "two" "one"
So I can use 'title' = elem within the function and it will substitute
elem by a name, every loop by a different name of a list.
...but I cannot use the contrary: elem = 'something' within the
function call.
My real life problem is using randomForest() I want to balance the
class frequency with the argument sampsize = c( 'absent' = 23, elem = 23)
where elem is everytime a different name taken from a list in a for-loop.
Regards Pedro
On 26.03.2012 02:17, Weidong Gu wrote:
Hi,
This may help
a = c('one','two','three')
data.frame(eval(substitute(rbind(var,2),list(var=a
?substitute
?eval
Weidong Gu
On Sun, Mar 25, 2012 at 5:22 PM, Pedro Martinez
wrote:
hello,
I want to iterate through a list of names and use each element as an
argument in a function. For instance:
a = c('one','two','three')
data= c()
for(elem in a){data=cbind(elem = 2,data)}
data
elem elem elem
[1,]222
instead I want 'elem' to be substituted by the string in the list.
Doing
it by hand would be:
data = cbind('one'=2,data)
data = cbind('two'=2,data)
data = cbind('three'=2,data)
data
'one' 'two' 'three'
[1,]222
I guess that the clue would be in sub(),gsub(), paste() or similar
but I
didnt get it to work.
I am comming from python were we woudl do something like:
a = ['one','two','three']
data = {}
for elem in a:
data[elem] = 2
data
{'three': 2, 'two': 2, 'one': 2}
Thanks, Pedro
-
Prof. Dr. P. Martinez Arbizu
DZMB-Forschungsinstitut Senckenberg
Suedstrand 44
D-26382 Wilhelmshaven
Germany
Tel: +49 (0)4421 9475-100
Fax: +49 (0)4421 9475-111
Email: pmarti...@senckenberg.de
Senckenberg Gesellschaft für Naturforschung
Rechtsfähiger Verein gemäß § 22 BGB
Senckenberganlage 25
60325 Frankfurt
Direktorium: Prof. Dr. Dr. h.c. Volker Mosbrugger, Prof. Dr. Michael
Türkay, Dr. Johannes Heilmann, Prof. Dr. Pedro Martinez Arbizu, Prof.
Dr. Georg Zizka, Prof. Dr. Uwe Fritz
Vorsitzender des Präsidiums: Dietmar Schmid
Aufsichtsbehörde: Magistrat der Stadt Frankfurt am Main (Ordnungsamt)
__
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide
http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.
--
-
Prof. Dr. Pedro Martinez Arbizu
Deutsches Zentrum für Marine Biodiversitätsforschung
Senckenberg am Meer
Südstrand 44
26382 Wilhelmshaven
Tel +49 (0)4421 9475 100
Fax +49 (0)4421 9475 111
Email: pmarti...@senckenberg.de
http://www.senckenberg.de/root/index.php?page_id=2141
und
C.v.O. Universität Oldenburg
FK V, Institut für Biologie u. Umweltwissenschaften
Ag Marine Biodiversität
**
Senckenberg Gesellschaft für Naturforschung
Rechtsfähiger Verein gemäß § 22 BGB
Senckenberganlage 25
60325 Frankfurt
Direktorium: Prof. Dr. Dr. h.c. Volker Mosbrugger, Prof. Dr. Michael Türkay,
Dr. Johannes Heilmann, Prof. Dr. Pedro Martinez Arbizu, Prof. Dr. Georg Zizka,
Prof. Dr. Uwe Fritz
Vorsitzender des Präsidiums: Dietmar Schmid
Aufsichtsbehörde: Magistrat der Stadt Frankfurt am Main (Ordnungsamt)
__
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.