我有这样一个简单的数据框:
ID Col1 Col2 Col3 Col4
1 NA NA NA NA
1 5 10 NA NA
1 NA NA 15 20
2 NA NA NA NA
2 25 30 NA NA
2 NA NA 35 40
我想这样重新格式化:
ID Col1 Col2 Col3 Col4
1 5 10 15 20
2 25 30 35 40
(请注意:实际数据集有数千行,其值来自生物学数据NA-s不遵循简单的模式,除了NAs不相交,是的,每个正好有3行ID)。
步骤1:摆脱仅包含NA值的行。
从表面上看,这看起来很简单,但是我遇到了一些问题。
complete.cases(DF)返回all FALSE,所以我不能真正使用它来删除所有带有NAs 的行,如中所示DF[complete.cases(DF),]。这是因为所有行都至少包含一个NA。
由于NAs想要传播自己,因此其他使用is.na相同方案的失败。
第二步:将剩余的两行折叠为一。
考虑使用类似的aggregate方法,但是必须有一个比this更简单的方法,这根本行不通。
感谢您的任何建议。
慕妹3242003