這個問題在這里已經有了答案: 查找資料框的補充(反連接) (7 個回答) 3 小時前關閉。
我有一張表格,上面列出了過去 30 年中最好的網球運動員的排名。示例如下(高度對我的問題不重要):
> head(mostSuccesfulPlayers)
player_id player_name player_ht
1 105453 Kei Nishikori 178
31 104925 Novak Djokovic 188
59 104731 Kevin Anderson 203
152 104745 Rafael Nadal 185
164 105227 Marin Cilic 198
172 103819 Roger Federer 185
我有另一個表格,它基本上包含資料集中的所有玩家,例如:
> head(allPlayers)
player_id player_name player_ht
1 100284 Jimmy Connors 178
2 100431 Mansour Bahrami 178
3 100529 Kevin Curren 185
4 100532 Johan Kriek 175
5 100553 Nduka Odizor 183
6 100581 John McEnroe 180
我想創建一個表格notSoSuccesfulPlayers,它只包含表格中的玩家allPlayers,但不包含mostSuccesfulPlayers表格中列出的玩家。在集合論符號中,這將是allPlayers\ mostSuccesfulPlayers。
我怎樣才能做到這一點?非常感謝您提前提供任何幫助!
uj5u.com熱心網友回復:
規范的替代方案setdiff:
subset(allPlayers, !player_id %in% mostSuccessfulPlayers$player_id)
注意:當您可以將每一行唯一地標識為一列時,這很有效;對于多列,您需要setdiff(或dplyr::anti_join)。
uj5u.com熱心網友回復:
最簡單和原生的 R 方法是函式setdiff:
df = iris
df2 = df[1:100,]
setdiff(df, df2)
在你的情況下
notSoSuccesfulPlayers = setdiff(allPlayers, mostSuccesfulPlayers)
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/397028.html
標籤:r
