【发布时间】:2015-06-05 02:38:50
【问题描述】:
我已将 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
任何建议或帮助将不胜感激!
【问题讨论】:
-
你能回到你开始做数据的地方吗?从源头解决问题可能会更好。
-
我在长数据格式上使用了 tidyr 包 spread() 函数。我基本上是这样做的:df2
-
@bridgbro 您可能需要显示原始示例,即
df1如果我尝试从显示的示例中重新创建长格式,dfN <- gather(df1, Var, Val, -Date) %>% na.omit(); spread(dfN, Var, Val)会给出预期的结果。