我已将 R 中的数据集从 LONG 格式转换为 WIDE 格式,现在每行有一个测量值。根据“日期”列合并行并删除 NA 的最佳方法是什么?
这是我所拥有的示例:
Date M1 M2 M3 M4
1 2013 NA NA NA 2
2 2013 6 NA NA NA
3 2013 NA 19 NA NA
4 2013 NA NA 10 NA
5 2014 NA NA NA 1
6 2014 NA NA 231 NA
7 2014 NA 215 NA NA
8 2014 16 NA NA NA
这是我想要创建的:
Date M1 M2 M3 M4
1 2013 6 19 10 2
2 2014 16 215 231 1
任何建议或帮助将不胜感激!
最佳答案
在不了解您的数据集的情况下,您可以尝试以下操作:
library(data.table)
as.data.table(mydf)[, lapply(.SD, sum, na.rm = TRUE), by = Date]
# Date M1 M2 M3 M4
# 1: 2013 6 19 10 2
# 2: 2014 16 215 231 1
它不必使用“data.table”(但这将是您最快的选择之一),但可以是您最喜欢的聚合函数之一。
关于R 变换数据框并移除 NA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29374024/