【发布时间】:2021-10-03 16:20:42
【问题描述】:
我试图在名为 WDI 的数据集中找到名为 GDP 的列的平均值。我试过使用mean(WDI$GDP),但我认为它不起作用,因为有些值是“..”。我无法更改数据集中的这些值;有什么方法可以在排除“..”值的同时获得平均值?
【问题讨论】:
-
如果您创建一个小的可重现示例以及预期的输出,这将更容易提供帮助。阅读how to give a reproducible example。
我试图在名为 WDI 的数据集中找到名为 GDP 的列的平均值。我试过使用mean(WDI$GDP),但我认为它不起作用,因为有些值是“..”。我无法更改数据集中的这些值;有什么方法可以在排除“..”值的同时获得平均值?
【问题讨论】:
.. 表示它是一个character 向量。一种选择是用as.numeric换行,这样所有字符元素都转换为NA,然后在mean中使用na.rm = TRUE
mean(as.numeric(WDI$GDP), na.rm = TRUE)
注意:这也会在控制台中显示友好警告
as.numeric(c(1, "..", 2))
[1] 1 NA 2
Warning message:
NAs introduced by coercion
如果这些警告消息不正确,那么另一种选择是删除这些元素,然后再转换为 numeric
with(WDI, mean(as.numeric(WDI[WDI != ".."])))
【讨论】: