【发布时间】:2015-03-09 19:27:17
【问题描述】:
我的数据如下所示:
A B
1 2
1A 2
1A 2
2 3
2 4
2 4
3A 0
3A 0
4A 1
4A 1
5 5
我想对数据进行子集化,并根据两列上的值提取所有重复的记录。我尝试使用 cbind 和 unique,但它们只提取唯一值。如果有帮助,我找不到反向子集函数。 谢谢。
【问题讨论】:
标签: r duplicates subset
我的数据如下所示:
A B
1 2
1A 2
1A 2
2 3
2 4
2 4
3A 0
3A 0
4A 1
4A 1
5 5
我想对数据进行子集化,并根据两列上的值提取所有重复的记录。我尝试使用 cbind 和 unique,但它们只提取唯一值。如果有帮助,我找不到反向子集函数。 谢谢。
【问题讨论】:
标签: r duplicates subset
你可以试试
df1[duplicated(df1)|duplicated(df1, fromLast=TRUE),]
# A B
#2 1A 2
#3 1A 2
#5 2 4
#6 2 4
#7 3A 0
#8 3A 0
#9 4A 1
#10 4A 1
df1 <- structure(list(A = c("1", "1A", "1A", "2", "2", "2", "3A",
"3A",
"4A", "4A", "5"), B = c(2L, 2L, 2L, 3L, 4L, 4L, 0L, 0L, 1L, 1L,
5L)), .Names = c("A", "B"), class = "data.frame", row.names = c(NA,
-11L))
【讨论】:
[.data.frame(b, duplicated(b) | duplicated(b, fromLast = T)) 中的错误:选择了未定义的列
dput 输出,它没有给出任何错误。请复制/粘贴 dput 输出并查看错误是否仍然存在。
str(df1),这些是非因子列。因子列的一个问题是,在您进行子集化后,您可能不会删除未使用的级别。 IE。 droplevels(df1[duplicated(...)