如何合并除一个列外所有列中具有相同信息的行?

posdef

我有一个看起来像这样的大数据框:

A  1  2  3  4  ...
B  1  2  3  4  ...
C  1  2  3  4  ...
D  5  2  1  4  ...
E  3  2  3  9  ...
F  0  0  2  2  ...
G  0  0  2  2  ...

如您所见,如果您忽略第一列,则某些行是重复的条目。我想合并/合并这些行以生成如下内容:

A;B;C  1  2  3  4  ...
D      5  2  1  4  ...
E      3  2  3  9  ...
F;G    0  0  2  2  ...

我可以编写一个for循环,该循环遍历所有行,但这既不美观也不有效。我敢肯定,有更好的方法可以做到这一点。

我以为我可以:

  1. 切片df,所以我有除第一列以外的所有列 slice <- df[, 2:ncols(df)]
  2. 获取具有所有“重复”行的数据框 dups <- df[duplicated(slice)]
  3. 得到另一个带有“唯一”行的数据框 uniq <- df[unique(slice)]
  4. 使用第一列以外的所有内容合并它们 merge(uniq, dups, by... )

除此之外这是行不通的,因为unique不会返回索引,而是返回整个数据帧,这意味着我无法df使用中的相应行进行索引slice

有什么建议?

编辑:我应该澄清,A,B,C ...不是行名,而是实际上是数据框的一部分,以字符串/字符表示形式给出的条目

A5C1D2H2I1M1N2O1R2T1

有几个功能可以做到这一点。所有这些都是共同的聚集功能:aggregatetapplyby,...,当然,时下流行的“data.table”和“dplyr”的功能集。

这里是aggregate

aggregate(V1 ~ ., mydf, toString)
#   V2 V3 V4 V5  V6      V1
# 1  0  0  2  2 ...    F, G
# 2  5  2  1  4 ...       D
# 3  1  2  3  4 ... A, B, C
# 4  3  2  3  9 ...       E

其他选择(如开篇所述):

library(data.table)
as.data.table(mydf)[, toString(V1), by = eval(setdiff(names(mydf), "V1"))]

library(dplyr)
mydf %>%
  group_by(V2, V3, V4, V5, V6) %>%
  summarise(V1 = toString(V1))

代替toString,您可以使用经典paste(., collapse = ";")方法,方法为最终输出提供更大的灵活性。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Excel如何将具有相同ID号的所有行合并到一个大型数据集的一列中?

来自分类Dev

如何从除 MSSQL 中的一列之外的所有列中具有相同数据的 2 行获取数据

来自分类Dev

合并R中具有除一个重复值之外的所有值的行

来自分类Dev

返回除一个矩阵外的所有列

来自分类Dev

如何获得除一列外所有值都相同的两行

来自分类Dev

如何在一个或多个列中查找具有完全相同值的行

来自分类Dev

重新编码pandas dataframe列中除一个值外的所有值

来自分类Dev

如何提取与某行相同的一列中具有相同值的所有行?

来自分类Dev

从表中选择所有行,除了具有相同 id 的另一个表中的行在另一列中具有特定值

来自分类Dev

如何在python中合并具有相同第一个单词的文件行?

来自分类Dev

如何从一个表(具有两列的唯一组合)中选择所有SQL行,而另一个表中没有相同的组合

来自分类Dev

从自身和该列中的所有行中减去该列中的第一行,对于R中除一个以外的所有列

来自分类Dev

asp.net如何从表中删除除第一个行外的所有行

来自分类Dev

如何选择表中除一个以外的所有列

来自分类Dev

如何在R中每n行创建一个具有相同ID的新列?

来自分类Dev

如何创建一个表,其中一列包含具有不同 id 的所有行的相同值?(为清楚起见,请参阅布局)

来自分类Dev

在一个文件中查找具有相同列对的行

来自分类Dev

MDX查询-子选择实现-选择除一个列外的所有值

来自分类Dev

如何删除文件中除第一个字符外的所有行?

来自分类Dev

如何保留数据框中所有列中具有相同值的所有行?

来自分类Dev

如何在另一个表ssms中更新具有相同值的列?

来自分类Dev

如何选择DOM中除一个元素外的所有元素?

来自分类Dev

如何删除当前目录中除一个文件外的所有文件?

来自分类Dev

Prolog-检查两个列表中除一个列表外是否具有相同的元素

来自分类Dev

从DataFrame中删除所有行,其中除一个特定值外的所有值均为NaN

来自分类Dev

我如何计算除重复输入一列外的所有行?

来自分类Dev

对于每一行,查找列中具有相同值的所有行

来自分类Dev

dplyr合并行并合并列,其中除一个以外的所有列均匹配

来自分类Dev

bash-在两个文件中获取具有相同列值的所有行

Related 相关文章

  1. 1

    Excel如何将具有相同ID号的所有行合并到一个大型数据集的一列中?

  2. 2

    如何从除 MSSQL 中的一列之外的所有列中具有相同数据的 2 行获取数据

  3. 3

    合并R中具有除一个重复值之外的所有值的行

  4. 4

    返回除一个矩阵外的所有列

  5. 5

    如何获得除一列外所有值都相同的两行

  6. 6

    如何在一个或多个列中查找具有完全相同值的行

  7. 7

    重新编码pandas dataframe列中除一个值外的所有值

  8. 8

    如何提取与某行相同的一列中具有相同值的所有行?

  9. 9

    从表中选择所有行,除了具有相同 id 的另一个表中的行在另一列中具有特定值

  10. 10

    如何在python中合并具有相同第一个单词的文件行?

  11. 11

    如何从一个表(具有两列的唯一组合)中选择所有SQL行,而另一个表中没有相同的组合

  12. 12

    从自身和该列中的所有行中减去该列中的第一行,对于R中除一个以外的所有列

  13. 13

    asp.net如何从表中删除除第一个行外的所有行

  14. 14

    如何选择表中除一个以外的所有列

  15. 15

    如何在R中每n行创建一个具有相同ID的新列?

  16. 16

    如何创建一个表,其中一列包含具有不同 id 的所有行的相同值?(为清楚起见,请参阅布局)

  17. 17

    在一个文件中查找具有相同列对的行

  18. 18

    MDX查询-子选择实现-选择除一个列外的所有值

  19. 19

    如何删除文件中除第一个字符外的所有行?

  20. 20

    如何保留数据框中所有列中具有相同值的所有行?

  21. 21

    如何在另一个表ssms中更新具有相同值的列?

  22. 22

    如何选择DOM中除一个元素外的所有元素?

  23. 23

    如何删除当前目录中除一个文件外的所有文件?

  24. 24

    Prolog-检查两个列表中除一个列表外是否具有相同的元素

  25. 25

    从DataFrame中删除所有行,其中除一个特定值外的所有值均为NaN

  26. 26

    我如何计算除重复输入一列外的所有行?

  27. 27

    对于每一行,查找列中具有相同值的所有行

  28. 28

    dplyr合并行并合并列,其中除一个以外的所有列均匹配

  29. 29

    bash-在两个文件中获取具有相同列值的所有行

热门标签

归档