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中。
您可以尝试使用
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 |
或将
1 2 | library(data.table) unique(setDT(df1), by='org.id') |