當我把一個值當作一個變量和一個R中的字符串時,我感到困惑。在Ruby和Python中,我習慣於一個總是被引用的字符串,並且一個未加引號的字符串總是被視爲一個變量。 IE瀏覽器。R中內聯的變量擴展
a["hello"] => a["hello"]
b = "hi"
a[b] => a["hi"]
但在R,不是這種情況下,例如
a$b < c(1,2,3)
B給是列,而不是變量b的值/名稱。
c <- "b"
a$c => column not found (it's looking for column c, not b, which is the value of the variable c)
(我知道,在這種特定的情況下,我可以使用[C],但也有許多其他情況下,如ggplot(a, aes(x=c))
- 我要繪製是c的值,不與列名稱c)...
在其他StackOverflow的問題,我已經看到了像報價,替代等提到的東西。
我的問題是:是否有一種「擴展」變量並確保使用變量的值而不是變量的名稱的一般方法?或者,這不僅僅是R在做什麼?
我認爲'get',在下面提到,在技術上是最「普遍」的解決方案。但_correct_答案可能會因不同情況而有所不同。例如請參閱我的評論,關於在ggplot中不使用'aes_string'的可怕性。 – joran 2013-05-10 15:51:50
@joran我同意,但我不認爲用'$'操作符做這件事是否有正確的方法。 – 2013-05-10 22:21:25
你可能會覺得這有幫助:https://github.com/hadley/devtools/wiki/Computing-on-the-language(它仍然是一個正在進行的工作) – hadley 2013-05-10 22:59:01