【发布时间】:2017-03-27 17:28:25
【问题描述】:
我有一个数据框,其中某些列具有相同的数据,但列名不同。我想删除重复的列,但合并列名。一个例子,其中 test1 和 test4 列是重复的:
df
test1 test2 test3 test4
1 1 1 0 1
2 2 2 2 2
3 3 4 4 3
4 4 4 4 4
5 5 5 5 5
6 6 6 6 6
我希望结果是这样的:
df
test1+test4 test2 test3
1 1 1 0
2 2 2 2
3 3 4 4
4 4 4 4
5 5 5 5
6 6 6 6
这是数据:
structure(list(test1 = c(1, 2, 3, 4, 5, 6), test2 = c(1, 2, 4,
4, 5, 6), test3 = c(0, 2, 4, 4, 5, 6), test4 = c(1, 2, 3, 4,
5, 6)), .Names = c("test1", "test2", "test3", "test4"), row.names = c(NA,
-6L), class = "data.frame")
请注意,我不只是想删除重复的列。在删除重复项后,我还想合并重复列的列名。
我可以为我发布的简单表手动执行此操作,但我想在大型数据集上使用它,我事先不知道哪些列是相同的。我不会手动删除和重命名列,因为我可能有超过 50 个重复的列。
【问题讨论】:
-
我们必须假设您搜索了“r 删除重复列”。请澄清为什么前几次点击没有帮助。否则,此问题将作为重复项关闭。
-
是的,我有。请查看结果表中的列名。我不仅想删除重复的列。在删除重复项后,我还想合并重复列的列名。我可以为我发布的简单表手动执行此操作,但我想在大型数据集上使用它。
-
你提前知道哪些列是重复的吗?或者您希望自动确定
-
我希望它能够自动确定。我想这样的事情会起作用:duplicated(t(df))
-
match和unique可以处理“列表”(此处为“data.frame”),因此match(df, unique.default(df))可以为相同的列提供映射作为一个简单的开始。你的数据有多大?有多少个唯一值?
标签: r