在这样的数据帧中
a <- c(rep("A", 3), rep("B", 3), rep("C",2))
b <- c(1,1,2,4,1,1,2,2)
df <-data.frame(a,b)
可以使用(基于B列的结果)删除重复项:
df[!duplicated(df), ]
如果A在DF中有第三列C,并且我希望根据B列的值删除副本是否正确使用:
df[!duplicated(df$b), ]
使用第三列。数据帧:
a <- c(rep("A", 3), rep("B", 3), rep("C",2))
b <- c(1,1,2,4,1,1,2,2)
c <- c("i","i","ii","ii","iii","iii","iv","iv")
df <-data.frame(a,b,c)
使用基于B列的删除重复项:
df[!duplicated(df$b), ]
结果是:
a b c
A 1 i
A 2 ii
B 4 ii
我希望这个
a b c
A 1 i
A 2 ii
B 4 ii
B 1 iii
C 2 iv
输入:
a <- c(rep("A", 3), rep("B", 3), rep("C",2))
b <- c(1,1,2,4,1,1,2,2)
c <- c("i","i","ii","ii","iii","iii","iv","iv")
df <-data.frame(a,b,c)
在POST中描述为预期输出:
a b c
A 1 i
A 2 ii
B 4 ii
B 1 iii
C 2 iv
在所有列上使用distinct
似乎都可以做您想要的:
>library(dplyr)
>distinct(df)
a b c
1 A 1 i
2 A 2 ii
3 B 4 ii
4 B 1 iii
5 C 2 iv
其他变化:仅允许唯一的b
's:
> distinct(df,b, .keep_all = TRUE)
a b c
1 A 1 i
2 A 2 ii
3 B 4 ii