Velvet Star Monitor

Standout celebrity highlights with iconic style.

news

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

Writer Sophia Terry

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 variables ?

1

3 Answers

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.

2

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.

1

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

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