2017-06-19 84 views
-1

下面的例子應該說明問題所在。 本質上,爲什麼我不能檢索變量的步驟列? 如果可能的話,我該怎麼做?R:如何使用字符串變量獲取data.frame列?

> k <- data.frame(step1=c(1, 2, 3), step2=c(4, 5, 6), step3=c(7, 8, 9)) 
> k 
    step1 step2 step3 
1  1  4  7 
2  2  5  8 
3  3  6  9 
> k$step1 
[1] 1 2 3 
> k$"step1" 
[1] 1 2 3 
> step_id <- "step1" 
> k$step_id 
NULL 
> 

回答

1

使用括號:

> k[step_id] 
    step1 
1  1 
2  2 
3  3 
+0

當一個適當的像這種情況下括號中的解決方案不存在,請使用替代 –

+0

爲什麼我不能'意味着(k [step_id])'這將是目的? – TMOTTM

+0

@TMOTTM,因爲'k [step_id]'是一個data.frame,你不能在data.frame上使用'mean()'。如果你想這樣做,使用'k [[step_id]]'。 – Matt

0

試試這個

k[,c("step1")] 

,如果你想創建一個新的data.frame與此列

newdata=k[,c("step1")] 
+0

我相信OP希望將結果作爲data.frame的列返回,這需要在方法中添加「drop = F」。 –