【发布时间】:2021-08-17 01:03:22
【问题描述】:
我有一个数据,它由两列和这些列上的一些重复项组成。我想删除每列的重复项,然后收集所有保留列名的唯一值。
data<-structure(c(10L, 10L, 11L, 11L, 5L, 5L, 3L, 5L), .Dim = c(2L,
4L), .Dimnames = list(c("d1", "m1"), c("year2036", "year2037",
"year2038", "year2039")))
year2036 year2037 year2038 year2039
d1 10 11 5 3
m1 10 11 5 5
输出会是这样的:
year2036 year2037 year2038 year2039 year2039
10 11 5 3 5
out<-structure(c(10, 11, 5, 3, 5), .Names = c("year2036", "year2037",
"year2038", "year2039", "year2039"))
我尝试了unique(r[c(1:8)]),但它只是给出了删除列名的唯一数字。
【问题讨论】:
-
您想要的输出不是“好”的输出。具有重复名称的向量在技术上是 R 允许的,但它是模棱两可的,不应在任何地方使用。在您的示例中考虑 out['year2039'] 。它只返回
3。如果你想参考 5 怎么办?所以不应该使用你想要的输出! -
跟进@Julian_Hn 的评论,我建议您使用pivot_longer 来处理这种格式的数据。
-
@Julian_Hn 是的,我同意你关于错误数据类型的观点,但我的观点是为每个元素执行函数。该函数将应用于 year2039[5] 和 year2039[3]。因此,我想不出任何其他解决方案。
标签: r duplicates