次のサンプルデータフレームがあります。
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
ました。col
Rが引数を列の名前として解釈している理由に少し腹を立てています。この点に関するあなたの貴重な提案をいただければ幸いです。