[R] variable substitution in for loops
David Winsemius
dwinsemius at comcast.net
Thu Feb 25 02:56:26 CET 2010
On Feb 24, 2010, at 8:18 PM, Jon Erik Ween wrote:
> Friends
>
> I can't quite find a direct answer to this question from the lists,
> so here goes:
>
> I have several dataframes, 200+ columns 2000+ rows. I wish to script
> some operations to perform on some of the variables (columns) in the
> data frames not knowing what the column number is, hence have to
> refer by name. I have variable names in a text file "varlist". So,
> something like this:
>
> for (i in 1:length(varlist)){
> j<-varlist[i]
> v<-mean(Dataset[[j]])
> print(v)
> }
Without a data example this is untested guesswork and may fail if
varlist is not a vector or something that can be coerced to a vector.
Might help to look at str(varlist), ... anyway ...
for (i in varlist){
v<-mean(Dataset[ , i])
print(v)
}
If it doesn't work, then pay close attention to the error messages.
--
David
>
> Now, if I force it
>
> j<-"Var1"
> v<-mean(Dataset[[j]])
> print(v)
>
> then it works, but not if i read the varlist as above.
>
> Looking at "j" I get:
>
>> print(j)
> V1
> 1 Var1
Right. You are supplying a list as an index.
>
> Hence there is a lot of other stuff read into "j" that confuses
> "mean".
I think it is confusing "[[", but it's really more guesswork because
you did not supply a reproducible example.
> I can't figure out how to just get the value of the variable and
> nothing else. I've tried space separated, comma separated, tab
> separated lists and all give the same error. I've tried get(),
> parse()... no go.
>
> Any suggestions?
>
> Thanks a lot
>
> Jon
>
> Soli Deo Gloria
>
> Jon Erik Ween, MD, MS
> Scientist, Kunin-Lunenfeld Applied Research Unit
> Director, Stroke Clinic, Brain Health Clinic, Baycrest Centre
> Assistant Professor, Dept. of Medicine, Div. of Neurology
> University of Toronto Faculty of Medicine
>
> Kimel Family Building, 6th Floor, Room 644
> Baycrest Centre
> 3560 Bathurst Street
> Toronto, Ontario M6A 2E1
> Canada
>
> Phone: 416-785-2500 x3648
> Fax: 416-785-2484
> Email: jween at klaru-baycrest.on.ca
>
>
> Confidential: This communication and any attachment(s) may contain
> confidential or privileged information and is intended solely for
> the address(es) or the entity representing the recipient(s). If you
> have received this information in error, you are hereby advised to
> destroy the document and any attachment(s), make no copies of same
> and inform the sender immediately of the error. Any unauthorized use
> or disclosure of this information is strictly prohibited.
>
>
>
>
> [[alternative HTML version deleted]]
>
> ______________________________________________
> R-help at 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.
David Winsemius, MD
Heritage Laboratories
West Hartford, CT
More information about the R-help
mailing list