关于r:如果某些变量与上面的行相同,则删除行

Remove row if certain variable is the same as the row above

本问题已经有最佳答案,请猛点这里访问。

我将以此问题为基础,类似于从数据框中删除行,其中行与字符串匹配

例如:

1
2
3
4
5
6
7
A,B,org.id
4,3,Foo
2,3,Bar
2,4,Bar
7,5,Zap
7,4,Zap
7,3,Zap

我如何返回一个数据帧,其中排除了org.id与上面的行相同的所有行?

1
2
3
4
A,B,org.id
4,3,Foo
2,3,Bar
7,5,Zap

猜猜:也许melt()或cast()函数可以解决问题。 (我只知道如何在excel中执行此操作,我必须在其中创建一个新的数据框并执行IF [a2 = a1,0,a2]。)

这个问题也类似于减去前一行数据,其中id与上面的行相同,但在sql中。


您可以尝试使用duplicated

1
2
3
4
5
 df1[!duplicated(df1$org.id),]
 #   A B org.id
 #1 4 3    Foo
 #2 2 3    Bar
 #4 7 5    Zap

或将uniqueby选项一起使用

1
2
 library(data.table)
 unique(setDT(df1), by='org.id')