我有一个包含10000行和32列的数据集。我想知道是否可以选择某些功能具有相同值的行?
这是一个使我的问题更加清楚的例子。
col1 col2 col3 col4 col5
1 2 3 4 5
3 4 3 6 8
2 2 5 4 5
4 2 7 4 5
5 4 `8 6 8`
2 3 1 0 9
3 4 1 5 2
在此数据集中有5列。假设我想选择一些在2,4和5列中具有相同值的行。
可以看出,第一行,第三行和第四行在col2,col4和col5中具有相同的值,第二行和第五行在那些列中具有相同的值。因此,我将选择这些行,并将新数据集设置为
col1 col2 col3 col4 col5
1 2 3 4 5
3 4 3 6 8
2 2 5 4 5
4 2 7 4 5
5 4 `8 6 8`
答案 0 :(得分:1)
我认为@ 42提供的链接为您提供了解决此问题的方法。您需要选择列并在两端应用duplicated
来选择行。
cols <- c(2, 4, 5)
df[duplicated(df[cols]) | duplicated(df[cols], fromLast = TRUE), ]
# col1 col2 col3 col4 col5
#1 1 2 3 4 5
#2 3 4 3 6 8
#3 2 2 5 4 5
#4 4 2 7 4 5
#5 5 4 8 6 8
或者使用dplyr
解决此问题的另一种方法是group_by
相应的列并选择组中具有多行的组。
library(dplyr)
df %>% group_by_at(cols) %>% filter(n() > 1)