开发者

Can't draw Histogram, 'x' must be numeric

开发者 https://www.devze.com 2022-12-21 06:15 出处:网络
I have a data file with this format: WeightIndustry Type 251,787Kelloggh 253,9601Kellogga 256,0758Kelloggh

I have a data file with this format:

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

I read the data and try to draw an histogram with this commands:

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

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

hist(we)

But I get this error:

Error en hist.default(we) : 'x' must be numeric.

What do I need to do in order to draw histograms for my three variabl开发者_如何学Goes ?


Because of the thousand separator, the data will have been read as 'non-numeric'. So you need to convert it:

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

and now you can do

 hist(we)

and other numeric operations.


Note that you could as well plot directly from ce (after the comma removing) using the column name :

hist(ce$Weight)

(As opposed to using hist(ce[1]), which would lead to the same "must be numeric" error.)

This also works for a database query result.


Use the dec argument to set "," as the decimal point by adding:

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

精彩评论

暂无评论...
验证码 换一张
取 消