根据行中的另一个变量删除具有相同值的行

时间:2019-12-16 16:43:51

标签: r conditional-statements

我有一个看起来像这样的数据集:

    1      2
   amt1     3
   amt2     3
   amt3     3
   amt1     2
   amt2     2
   amt2     2
   nrt1     1
   nrt1     1
   nrt1     1

我试图删除第1列中没有变化的行,因此在上面的示例中,具有3和2的行将全部保留,但我将删除1的行。

我想不出一种方法,可以根据每一列有条件地搜索并删除另一列。

3 个答案:

答案 0 :(得分:2)

这里是dplyr的一个选项。通过第二列分组,我们可以filter在第一列中具有多个唯一值的组(假设它是data.frame

library(dplyr)
df1 %>%
   group_by(`2`) %>%
   filter(n_distinct(`1`) > 1)

答案 1 :(得分:2)

使用基数R

unique(df1)

    X1 X2
1 amt1  3
2 amt2  3
3 amt3  3
4 amt1  2
5 amt2  2
7 nrt1  1

答案 2 :(得分:0)

使用Dplyr: df%>% if_else(as. numeric(1-lag(1)==0)&2-lag(2)==0,na,df). na.omit(df)