如果某个变量与上面的行相同,则删除行

时间:2015-07-13 10:58:57

标签: r dataframe

我将基于此问题构建类似于Remove Rows From Data Frame where a Row match a String

例如:

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

如何返回排除org.id与上一行相同的所有行的数据框?

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

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

问题也类似于Subtract the previous row of data where the id is the same as the row above,但这是在sql中。

1 个答案:

答案 0 :(得分:1)

您可以尝试使用duplicated

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

unique使用by选项

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