【发布时间】:2021-11-16 09:18:32
【问题描述】:
类似于this 的问题,但有一点不同:
给定以下数据框:
txt <- "ID Col1 Col2 Col3 Col4
1 6 10 NA NA
1 5 10 NA NA
1 NA 10 15 20
2 17 25 NA NA
2 13 25 NA NA
2 NA 25 21 34
2 NA 25 35 40"
DF <- read.table(text = txt, header = TRUE)
DF
ID Col1 Col2 Col3 Col4
1 1 6 10 NA NA
2 1 5 10 NA NA
3 1 NA 10 15 20
4 2 17 25 NA NA
5 2 13 25 NA NA
6 2 NA 25 21 34
7 2 NA 25 35 40
我希望按组 ID 折叠行(类似于此示例中的 Col2),并且当每个组存在超过 1 个组合时,返回所有组合,如下所示:
ID Col1 Col2 Col3 Col4
1 1 6 10 15 20
2 1 5 10 15 20
3 2 17 25 21 34
4 2 13 25 21 34
5 2 17 25 35 40
6 2 13 25 35 40
重要的是,以后我需要它来处理非数值数据。有什么建议?谢谢!
【问题讨论】:
-
原始的第 3 行被折叠成第 1-2 行。第 6-7 行折叠成第 4-5 行,共有 4 种组合。
标签: r data.table aggregate na