2012-10-14 27 views
1

提取某些列我有一個下面的示例數據幀:中的R

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解釋爲列的名稱。在這方面您的寶貴建議將受到高度讚賞。

回答

3

這一部分:kk<-data[,c("x","col")]應該kk<-data[,c("x",col)]

+0

非常感謝慈母龍! – Metrics

+1

很高興它的工作。您是否介意將此作爲最佳答案進行檢查?謝謝。 – Maiasaura

+0

當然!你能不能讓我知道我該怎麼做? – Metrics