1

我有以下示例数据框:

x<-c(1:4)
y<-c(9:12)
z<-c("a","b","c","d")
data<-data.frame(x,y,z) # as data: 

      x  y z
    1 1  9 a
    2 2 10 b
    3 3 11 c
    4 4 12 d

我想使用函数提取第 2 列或第 3 列(注意:我使用的是列名来提取)。我的代码如下:

data_frame<-function(col){
cols<-c("y","z")
# column x is already there; it is not in a vector of col.
if (col %in% cols){
kk<-data[,c("x","col")] 
return (kk)}
}

现在,我想要data_frame("y"). 但是,R 给了我以下错误:

data_frame("y")
Error in `[.data.frame`(data, , c("x", "col")) : 
  undefined columns selected. 

我想知道为什么 R 不接受我coly这里的论点。我有点不高兴为什么 R 将参数解释col为列的名称。您在这方面的宝贵建议将不胜感激。

4

1 回答 1

3

这部分:kk<-data[,c("x","col")]应该是kk<-data[,c("x",col)]

于 2012-10-14T17:08:53.530 回答