R 变换数据框并移除 NA

标签 r transform na

我已将 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/

相关文章:

r - 将 data.table 列快速连接为一个字符串列

r - 使用ggplot2语法创建模板?

删除 R Spie 图中的标签边框

javascript - 居中旋转的 Div

r - 当我指定的列中所有单元格都有 NA 时,如何删除 NA?

python - 在 macOS 上安装 rpy2——R_HOME 变量的问题

CSS @keyframes 缩放文本模糊

python - 旋转 Pandas 表 - 特殊问题

r - 使用不适用的 "factors"进行聚合

r - 更改 ggplot geom_bar 中 NA 值的标签和颜色?