假設我有這樣一個數字矢量:如何從基於R中的向量的data.frame提取值?
x <- c(1.0, 2.5, 3.0)
和data.frame:
df<-data.frame(key=c(0.5,1.0,1.5,2.0,2.5,3.0),
value=c(-1.187,0.095,-0.142,-0.818,-0.734,0.511))
df
key value
1 0.5 -1.187
2 1.0 0.095
3 1.5 -0.142
4 2.0 -0.818
5 2.5 -0.734
6 3.0 0.511
我想提取所有DF $關鍵有等於x的值相同的行,用結果是:
df.x$value
[1] 0.095 -0.734 0.511
請問有沒有一種有效的方法可以做到這一點?我試過data.frame,hash包和data.table,都沒有成功。感謝幫助!
謝謝你們。我實際上嘗試過類似的東西,但得到了DF $ key和x反轉。是否可以使用hash()函數(在「散列」包中)執行此操作?我看到的散列可以做這樣的事情:
h <- hash(keys=letters, values=1:26)
h$a # 1
h$foo <- "bar"
h[ "foo" ]
h[[ "foo" ]]
z <- letters[3:5]
h[z]
<hash> containing 3 key-value pair(s).
c : 3
d : 4
e : 5
但好像它並不需要一個陣列中的鑰匙鏈,如:
h[[z]]
Error in h[[z]] : wrong arguments for subsetting an environment
,但我需要的值只能作爲一個載體而不是散列。否則,這將是完美的,所以我們可以通過使用一些'真正的'散列概念來擺脫data.frame。
歡迎來到SO!請在您的data.frame上使用'dput()'並粘貼結果以使其可重現。這次只添加了可重複版本的df。 –