无法绘制直方图,'x'必须是数字

时间:2010-02-27 22:38:35

标签: r histogram

我有一个这种格式的数据文件:

Weight    Industry Type  
251,787   Kellogg  h  
253,9601  Kellogg  a  
256,0758  Kellogg  h  
....

我读取数据并尝试使用以下命令绘制直方图:

 ce <- read.table("file.txt", header = TRUE)

 we = ce[,1]
 in = ce[,2]
 ty = ce[,3]

hist(we)

但是我收到了这个错误:

  

错误en hist.default(we):'x'必须是数字。

为了绘制三个变量的直方图,我需要做些什么?

3 个答案:

答案 0 :(得分:17)

由于千位分隔符,数据将被读作“非数字”。所以你需要转换它:

 we <- gsub(",", "", we)   # remove comma
 we <- as.numeric(we)      # turn into numbers

现在你可以做到

 hist(we)

和其他数字操作。

答案 1 :(得分:3)

请注意,您也可以使用列名直接从ce(删除逗号后)进行绘图:

hist(ce$Weight)

(与使用hist(ce[1])相反,这会导致相同的“必须是数字”错误。)

这也适用于数据库查询结果。

答案 2 :(得分:3)

使用 dec 参数将","设置为小数点,方法是添加:

 ce <- read.table("file.txt", header = TRUE, dec = ",")