51

我有一个包含两列的数据框。当我尝试计算mean时,我收到以下消息:

[1] NA
Warning message:
In mean.default(results) : argument is not numeric or logical: returning NA`

其中“结果”是我的数据集。关于解决这个问题的任何建议?

4

3 回答 3

75

从 R 3.0.0 起mean(<data.frame>)已失效(并将 data.frame 传递给mean将给出您声明的错误)

数据框是具有唯一行名称的相同行数的变量列表,给定类“data.frame”。

在您的情况下,结果有两个变量(如果您的描述正确)。您可以使用以下任何一种方式获取列手段

lapply(results, mean, na.rm = TRUE)
sapply(results, mean, na.rm = TRUE)
colMeans(results, na.rm = TRUE)
于 2013-10-31T05:40:18.993 回答
20

如果你只想知道平均值,你可以使用

summary(results)

它会给你比预期更多的信息。

ex) 最小值、第 1 曲、中位数、平均值、第 3 曲。最大值,NA 的数量。

此外,如果您想获得每列的平均值,您可以简单地使用下面的方法。

mean(results$columnName, na.rm = TRUE)

这将返回平均值。(您必须将 'columnName' 更改为您的变量名

于 2013-10-31T08:54:01.363 回答
0

如果您未使用mean()函数在 data.frame 列中使用正确的(数字)格式的数据,则会出现相同的错误。因此,请使用str(data.frame&column)函数检查您的数据以查看您拥有的数据类型,并在必要时将其转换为数字格式。例如,如果您的数据是字符,则将其转换为as.numeric(data.frame$column),或作为因子使用as.numeric(as.character(data.frame$column))。mean 函数不适用于数字以外的类型。

于 2021-02-12T13:55:05.577 回答