r - 除了 na.rm= TRUE 之外,mean 还返回 NaN

标签 r dplyr

样本数据

date        coins   
2013-10-01  NA      
2013-10-01  NA      
2013-10-01  NA      
2013-11-01  10      
2013-11-01  NA      
2013-11-01  20      
2013-11-01  30      
2013-11-01  40      
2013-12-30  NA      
2013-12-30  22      
2013-12-30  24
2013-12-30  25

我想做的事?

我想计算硬币列的平均值和中位数,忽略缺失值。

到目前为止我做了什么?
  • 对日期变量 by_date <- group_by(df, date) 上的数据进行分组
  • 汇总数据使用:by_date %>% summarise_each_(funs(mean(., na.rm = TRUE), median(., na.rm=TRUE)), names(by_date)[2])

  • 问题
    summarise_each_ 返回的结果显示 NaN 日期 2013-10-01 .这是否意味着该函数不会忽略缺失值?

    最佳答案

    这里的问题是 2013-10-01 的所有值都是 NA ,所以不可能有平均值。 NaN R 试图告诉你这个。

    如果您不想在摘要中显示 2013-10-01,一种选择是去掉 NA像这样预先值:

    by_date<-group_by(df[!is.na(df$coins),],date)
    

    关于r - 除了 na.rm= TRUE 之外,mean 还返回 NaN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35412784/

    相关文章:

    r - 使用不同变量组合运行模型的最佳方法

    date - 将日期格式更改为 "%d/%m/%Y"

    r - 使用 ChartSeries 对日内数据进行子集化

    r - 满足条件时如何更新当前行的下一行

    r - dplyr group_by 动态列

    逻辑回归的 glm() 结果

    r - source() 相对于当前脚本目录的路径?

    r - 过滤两列等于相同值的数据框

    r - 连接以提取表 Y 中大于表 X 中每个项目 ID 的日期的最小日期

    r - 如何使用 dplyr 使用默认值填充空数据框?