在R中提取一些列

时间:2012-10-14 17:04:49

标签: r dataframe extract

我有以下示例数据框:

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没有在这里col采用y。我有点不高兴为什么R将参数col解释为列的名称。您在这方面的宝贵建议将受到高度赞赏。

1 个答案:

答案 0 :(得分:3)

此部分:kk<-data[,c("x","col")]应为kk<-data[,c("x",col)]