r - 使用 na.rm = TRUE 时总结返回 -inf

标签 r dplyr summarize

我最近构建了一个简单的 R 脚本来总结三个不同的数据框。自从更新到最新版本的 R 和 R Studio 后,我遇到了以前从未见过的输出,在 dplyr 中仅对其中一个数据帧使用汇总函数(其他两个都很好)。我还收到了一系列我不熟悉的警告。请注意,在更新之前,我完全按照编写的方式运行脚本,任何数据框都没有问题。

有问题的数据框称为VO2,其设置如下:

Name        Sex       VO2
AthleteA    M         50
AthleteA    M         52
AthleteA    M         NA
AthleteB    M         49
AthleteB    M         56
AthleteB    M         47 
AthleteC    M         42
AthleteC    M         NA
AthleteC    M         41 
AthleteD    M         NA
AthleteD    M         NA
AthleteD    M         NA 

我运行的代码是:
Test.Summary.VO2 = VO2 %>% group_by(Name, Sex) %>% 
summarise(Best.Score = max(VO2, na.rm=TRUE))

此代码生成以下摘要:
Name       Sex     Best.Score
AthleteA    M        52
AthleteB    M        56
AthleteC    M        42
AthleteD    M        -Inf

-Inf 值在输出中是全新的。我无法弄清楚为什么它现在出现在只有 NA 的情况下。

如上所述,我对第二个数据框有完全相同的布局并运行相同类型的摘要。这里一切正常。当我用 na.rm=TRUE 进行总结时,它会删除 NA 案例而不用 -Inf 值替换 NA 案例。

更不寻常的是,当我使用以下方法查看数据框时:
View(Test.Summary.VO2)

我收到以下一系列警告消息:
There were 38 warnings (use warnings() to see them)
warnings()
Warning messages:
1: Unknown or uninitialised column: 'Quad'.
2: Unknown or uninitialised column: 'Quad'.
3: Unknown or uninitialised column: 'Quad'.
4: Unknown or uninitialised column: 'Quad'.

稍后在脚本中,我生成了一个名为“Quad”的新变量。但是即使在我清除环境并重新启动 R Studio 后,上述警告也会出现。我什至尝试重命名 .csv 文件并使用不同的数据帧名称导入。这几乎就像脚本中稍后生成的“Quad”列在环境中的某个地方徘徊。

我真的不知道这里可能会发生什么。

我希望 Stack 上的一位 R 专家可以为我提供有关如何解决此问题的想法。

谢谢你的考虑。

最佳答案

?max :

The minimum and maximum of a numeric empty set are +Inf and -Inf (in this order!) which ensures transitivity, e.g., min(x1, min(x2)) == min(x1, x2). For numeric x max(x) == -Inf and min(x) == +Inf whenever length(x) == 0 (after removing missing values if requested). However, pmax and pmin return NA if all the parallel elements are NA even for na.rm = TRUE.


对于 D 组,您没有任何非 NA 值,因此 max返回空集的值。

关于r - 使用 na.rm = TRUE 时总结返回 -inf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46289577/

相关文章:

r - ggvis 中带有数字的热图

r - 使用 dplyr 将开始和结束日期扩展到不平衡的月度面板

r - 如何将重复行的值合并为一行

r - 使用 summarize() 访问其他 group_by 组

r - 使用 R 如何知道我的数据是否符合泊松分布?

r - R中的直方图

r - 如何使用 dplyr 覆盖数据?

r - mutate_if 和 mutate_at 功能在一行中

r - dplyr 'object not found' 仅中位数

r - R 中具有限制系数的 ARIMA 的 AIC、BIC 值