[R] Odp: Using a string as a variable name - revisited

Petr PIKAL petr.pikal at precheza.cz
Fri Apr 2 09:54:13 CEST 2010


Hi

Without some insight about foo, list or counts it is impossible to say 
what is wrong.

mat<-matrix(1:12, 3,4)
colnames(mat)<-letters[1:4]
DF<-as.data.frame(mat)
fac<-factor(names(DF))
> fac
[1] a b c d
Levels: a b c d
> ff<-fac[3]
> ff
[1] c
Levels: a b c d
> DF[[ff]]
[1] 7 8 9
> ff<-fac[1]
> DF[[ff]]
[1] 1 2 3

As you can see with DF as data frame and ff extracted from vector of name 
as a factor everything seems to work OK.

When anybody except you wont to do

foo <- list$taxon[match(5,list$item)]

he gets

Error in list$taxon : object of type 'builtin' is not subsettable

So provide some toy example or at least structure of objects you use and 
you probably get solution.

Regards
Petr


> 
r-help-bounces at r-project.org napsal dne 01.04.2010 23:24:55:

> I would like to revisit a problem that was discussed previously (see
> quoted discussion below). I am trying to do the same thing, using a
> string to indicate a column with the same name. I am making "foo" a
> string taken from a list of names. It matches the row where "item" =
> 5, and picks the corresponding "taxon"
> 
> > foo <- list$taxon[match(5,list$item)]
> 
> Let's say this returns foo as "Aulacoseira_islandica". I have another
> matrix "counts" with column headers corresponding to the taxon list.
> But, when I try to access the data in the Aulacoseira_islandica
> column, it instead uses the data from another column. For instance...
> 
> > columndata <- counts[[foo]]
> 
> ...returns the data from the wrong column. What it seems to be doing
> is converting the text "Aulacoseira_islandica" to a number (25, for
> some reason) and reading the count data from column number 25, instead
> of from the column labelled with Aulacoseira_islandica.
> 
> If I try...
> 
> > columndata <- counts$Aulacoseira_islandica
> 
> ...it works fine. Any thoughts?
> 
> -Euan
> NRRI-University of Minnesota Duluth
> 
> 
> ______________________
> Jason Horn-2
> Oct 20, 2006; 06:28pm
> [R] Using a string as a variable name
> 
> Is it possible to use a string as a variable name?  For example:
> 
> foo<="var1"
> frame$foo   # frame is a data frame with with a column titled "var1"
> 
> This does not work, unfortunately.  Am I just missing the correct
> syntax to make this work?
> 
> - Jason
> ______________________________________________
> Oct 20, 2006; 06:30pm
> Re: [R] Using a string as a variable name
> 
> frame[[foo]]
> 
> On 10/20/06, Jason Horn <[hidden email]> wrote:
> 
> > Is it possible to use a string as a variable name?  For example:
> >
> > foo<="var1"
> > frame$foo   # frame is a data frame with with a column titled "var1"
> >
> > This does not work, unfortunately.  Am I just missing the correct
> > syntax to make this work?
> >
> >
> > - Jason
> 
> -- 
> Jim Holtman
> Cincinnati, OH
> +1 513 646 9390
> 
> ______________________________________________
> 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.



More information about the R-help mailing list