[R] selection part of "subset"

Milan Bouchet-Valat nalimilan at club.fr
Thu Jan 5 17:11:43 CET 2012


Le jeudi 05 janvier 2012 à 16:51 +0100, Christof Kluß a écrit :
> Hi
> 
> I want to do something like
> 
> a <- c(10,20,15,43,76,41,25,46)
> tab <- data.frame(a)
> 
> name <- "a"
> 
> for (v in unique(tab[[name]])) {
>   r <- subset(tab, name==v)   # this does not work
>   ...
> }
> 
> i.e. a "string" on the left side of the select expression (subset). How
> could I solve this?
> 
> the output should look like     r <- subset(tab, a==v)
> but now I have something like   r <- subset(tab, "a"==v)
> and                             r <- subset(tab, [["a"]]==v)
> does not work :(
Not sure what you want to do. The subset() commands you're using will
select the rows from tab that match the given expression, which in your
first example is "name==v". The problem is, none of the values of tab is
equal to "a" (the value of 'name'), so it returns nothing. You can check
it by just typing:
name==v

So, please tell us what you want to achieve, rather than how you're
doing it (wrong). ;-)


Cheers



More information about the R-help mailing list