[R] subsetting data-frame by vector of characters
james perkins
jperkins at biochem.ucl.ac.uk
Fri Jun 13 16:43:43 CEST 2008
Thanks a lot for that. Its the %in% I needed to work out mainly
large didn't mean anything in particular, just that it gets quite long
with the real data.
I did mean: names = c("John", "Phil", "Robert")
The only problem is that using the method you suggest is that I lose the
indexing, ie in the example, instead of:
(index) Name Fave.Number
1 John 7
2 Phil 14
3 Robert 23
I end up with
(index) Name Fave.Number
1 John 7
3 Phil 14
5 Robert 23
This isnt a problem at the moment but I guess it could be if I used the
table later in loops. Is there an easy way to re-index the table?
Kind regards
Jim
Wacek Kusnierczyk wrote:
> james perkins wrote:
>
>> Hi,
>>
>> I have a very simple problem but I can't think how to solve it without
>> using a for loop and creating a large logical vector. However given
>> the nature of the problem I am sure there is a "1-liner" that could do
>> the same thing much more efficiently.
>>
>> bascially I have a dataframe with characters in, eg
>>
>>
>>> names.and.numbers
>>>
>> (index) Name Fave.Number
>> 1 John 7
>> 2 Tony 12
>> 3 Phil 14
>> 4 Adam 22
>> 5 Robert 23
>>
>>
>> Now, imagine I have a vector of names, ie:
>>
>>
>>> names = c("John,Phil,Robert")
>>>
>
> this is a one-element vector of string(s) that are concatenated names
> (strings with names).
> or you mean: names = c("John", "Phil", "Robert")
>
>
>
>> All I want to do is get the subset of the dataframe which corresponds
>> to the names in the vector "Names". IE
>>
>> (index) Name Fave.Number
>> 1 John 7
>> 2 Phil 14
>> 3 Robert 23
>>
>
> this should do:
> names.and.numbers[names.and.numbers$Name %in% names,]
>
> if names is as you say above, do
> names.and.numbers[names.and.numbers$Name %in% strsplit(names,","), ]
>
> you do create a logical vector here (what does 'large' mean?), but no
> loop is involved at the surface.
>
> vQ
>
> ______________________________________________
> 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