3 回答

TA貢獻(xiàn)1797條經(jīng)驗(yàn) 獲得超6個(gè)贊
嘗試match:
df <- data.frame(name=letters[1:4], value=c(rep(TRUE, 2), rep(FALSE, 2)))
target <- c("b", "c", "a", "d")
df[match(target, df$name),]
name value
2 b TRUE
3 c FALSE
1 a TRUE
4 d FALSE
只要您target包含與完全相同的元素df$name并且都不包含重復(fù)值,它將起作用。
來(lái)自?match:
match returns a vector of the positions of (first) matches of its first argument
in its second.
因此,match找到與target元素匹配的行號(hào),然后我們df以該順序返回。

TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超3個(gè)贊
我更喜歡***_join 在dplyr需要匹配數(shù)據(jù)時(shí)使用。一種可能的嘗試
left_join(data.frame(name=target),df,by="name")
請(qǐng)注意,***_joinrequire tbls或data.frame 的輸入
- 3 回答
- 0 關(guān)注
- 254 瀏覽
添加回答
舉報(bào)