我想消除变量中的重复项,但仅限于R中某个值组中的重复项

我想消除变量中的重复项,但仅限于R中某个值组中的重复项,r,duplicates,R,Duplicates,这里不是一个非常熟练的程序员,所以请容忍我。 我想消除变量“B”中的重复性,但仅限于变量“A”的相同值。也就是说,对于1的组,我只得到一个“a”值,而对于2的组,我不会消除它 A <- c(1,1,1,2,2,2) B <- c('a','b','a','c','a','d') ab <- cbind(A,B) AB <- as.data.frame(ab) A您可以使用unique删除数据框中的重复行 ab <- unique(ab) ab # A B #

这里不是一个非常熟练的程序员,所以请容忍我。 我想消除变量“B”中的重复性,但仅限于变量“A”的相同值。也就是说,对于1的组,我只得到一个“a”值,而对于2的组,我不会消除它

A <- c(1,1,1,2,2,2)
B <- c('a','b','a','c','a','d')
ab <- cbind(A,B)
AB <- as.data.frame(ab)

A您可以使用
unique
删除数据框中的重复行

ab <- unique(ab)
ab
#   A B
# 1 1 a
# 2 1 b
# 4 2 c
# 5 2 a
# 6 2 d

ab您可能还想看看
duplicated()
函数。你的榜样

a <- c(1,1,1,2,2,2)
b <- c('a','b','a','c','a','d')
ab <- cbind(a,b)
ab_df <- as.data.frame(ab)
显然,第3行与第1行重复
duplicated(ab_df)
返回指示重复行的逻辑向量:

> duplicated(ab_df)
[1] FALSE FALSE  TRUE FALSE FALSE FALSE
这反过来又可用于消除原始数据帧中的重复行:

> ab_df
  a b
1 1 a
2 1 b
3 1 a
4 2 c
5 2 a
6 2 d
> d <- duplicated(ab_df)

> ab_df[!d, ]
  a b
1 1 a
2 1 b
4 2 c
5 2 a
6 2 d
>dab_df[!d,]
a b
11A
21 b
4.2 c
5.2 a
6.2 d

谢谢Michael,这非常有帮助!由于某种原因,当我使用unique()函数进行子集设置时,R返回一个空数据帧,所有值都为NA。这很有效。