colMeans出错(adult_csv [1],na.rm = TRUE):'x'必须是数字

时间:2017-02-20 16:02:21

标签: r

我正在尝试获取this数据集的年龄字段的方法。 我已经清理过了。但是当我跑步时

colMeans(adult_csv[1], na.rm = TRUE)

它抱怨道:

Error in colMeans(adult_csv[1], na.rm = TRUE) : 'x' must be numeric

我尝试了adult_csv[1]并正确地为我提供了age功能。 此外,其中没有x或缺少数据。

1 个答案:

答案 0 :(得分:1)

如果您正在使用read.csv,则age列中会有一些字符导致R将整列读取为字符向量而不是数字。要使hist函数起作用,所有数据都必须是类数字。

首先看看:

adult_csv[which(is.na(as.numeric(adult_csv[1]))), 1]

有一堆"?" R在计算直方图时不能使用的值。无论如何,这些应该是NA值,因为"?"只是缺少数据的占位符。当您将此列转换为数字时,R会向您发出警告,表示它无法转换"?"变成一个数字。相反,它将使用NA,但在您的情况下,这可能是一个很好的结果。

使用:

adult_csv[1] <- as.numeric(adult_csv[1])

当您导入数据时,只需花点时间查找此类内容并了解错误消息的含义。堆栈溢出还有很多其他问题可以回答同样的问题。

希望这是有道理的。