我有以下示例数据框:
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
解释为列的名称。您在这方面的宝贵建议将受到高度赞赏。
答案 0 :(得分:3)
此部分:kk<-data[,c("x","col")]
应为kk<-data[,c("x",col)]