![](/img/trans.png)
[英]How can I extract xml nodes and key values to data.frame in R studio, including NA values?
[英]How can I extract values from a data.frame based on a vector in R?
假設我有一個數字向量,如:
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 $ key中具有相同值等於x的所有行,結果如下:
df.x$value
[1] 0.095 -0.734 0.511
請問有效的方法嗎? 我已經嘗試過data.frame,hash包和data.table,但都沒有成功。 感謝幫助!
多謝你們。 我實際上嘗試了類似的東西,但得到了df $ key和x反轉。 是否可以使用hash()函數(在'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。
嘗試,
df[df$key %in% x,"value"] # resp
df[df$key %in% x,]
使用OR |
條件您可以修改它,使您的向量可能出現在任一列中。 一般提示:還看看which
。
您是否嘗試過測試x中的df $ key值並提取值列中的值? 我只是大聲說出來因為StackOverflow不喜歡oneline答案:
> x
[1] 1.0 2.5 3.0
> df
key value
1 0.5 -0.7398436
2 1.0 0.6324852
3 1.5 1.8699257
4 2.0 1.0038996
5 2.5 1.2432679
6 3.0 -0.6850663
> df[df$key %in% x,'value']
[1] 0.6324852 1.2432679 -0.6850663
>
大警告 - 使用==與浮點數進行比較可能是一個壞主意 - 閱讀R FAQ 7.31了解更多信息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.