[R] Problem subsetting: undefined columns
R. Michael Weylandt <firstname.lastname@example.org>
michael.weylandt at gmail.com
Fri Dec 2 18:30:05 CET 2011
How about this?
d[, v[v %in% colnames(d)]]
On Dec 2, 2011, at 12:01 PM, Aurélien PHILIPPOT <aurelien.philippot at gmail.com> wrote:
> Hi Paul and Jim,
> Thanks for your messages.
> I just wanted R to give me the columns of my data frame d, whose names
> appear in v. I do not care about the names of v that are not in d. In
> addition, every time, there will be at least one element of v that has a
> corresponding column in d, for sure, so I know there is at least one match
> between the 2.
> Initially, I tried something in the spirit:
> sub<- subset(d, colnames(d) %in% v)
> but I could not make it work properly.
> 2011/12/2 Paul Hiemstra <paul.hiemstra at knmi.nl>
>> On 12/02/2011 07:20 AM, Aur�lien PHILIPPOT wrote:
>>> Dear R-users,
>>> -I am new to R, and I am struggling with the following problem.
>>> -I am repeating the following operations hundreds of times, within a
>>> I want to subset a data frame by columns. I am interested in the columns
>>> names that are given by the rows of another data frame that was built in
>>> parallel. The solution I have so far works well as long as the elements
>>> the second data frame are included in the column names of the first data
>>> frame but if an element from the second object is not a column name of
>>> first one, then it bugs.
>> Hi Aurelien,
>> I would call this a feature, not a bug. I think R does what it should
>> do, you request a non-existent column and it throws an error. What kind
>> of behavior are you looking for instead of this error?
>>> -More concretely, I have the following data frames d and v:
>>> yyyymmdd<-c("19720601", "19720602", "19720605")
>>> d<- data.frame(yyyymmdd=yyyymmdd, sret.10006=sret.10006,
>>> sret.10014=sret.10014, sret.10065=sret.10065)
>>> v<- data.frame(V1="sret.10006", V2="sret.10090")
>>> v<- sapply(v, function(x) levels(x)[x])
>>> -I want to do the following subsetting:
>>> sub<- subset(d, select=c(v))
>>> and I get the following error message:
>>> Error in `[.data.frame`(x, r, vars, drop = drop) :
>>> undefined columns selected
>>> Any help would be very much appreciated,
>>> [[alternative HTML version deleted]]
>>> R-help at r-project.org mailing list
>>> PLEASE do read the posting guide
>>> and provide commented, minimal, self-contained, reproducible code.
>> Paul Hiemstra, Ph.D.
>> Global Climate Division
>> Royal Netherlands Meteorological Institute (KNMI)
>> Wilhelminalaan 10 | 3732 GK | De Bilt | Kamer B 3.39
>> P.O. Box 201 | 3730 AE | De Bilt
>> tel: +31 30 2206 494
> [[alternative HTML version deleted]]
> R-help at r-project.org mailing list
> 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