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がここにある私の議論colを受け入れていないのか疑問に思いyました。colRが引数を列の名前として解釈している理由に少し腹を立てています。この点に関するあなたの貴重な提案をいただければ幸いです。

4

1 に答える 1

3

この部分kk<-data[,c("x","col")]kk<-data[,c("x",col)]

于 2012-10-14T17:08:53.530 に答える