Не могу нарисовать гистограмму, 'x' должно быть числовым - PullRequest
23 голосов
/ 28 февраля 2010

У меня есть файл данных в этом формате:

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)

Но я получаю эту ошибку:

Ошибка в протоколе по умолчанию (мы): 'x' должно быть числовым.

Что мне нужно сделать, чтобы нарисовать гистограммы для моих трех переменных?

Ответы [ 3 ]

18 голосов
/ 28 февраля 2010

Из-за разделителя тысяч данные будут считаны как «нечисловые». Так что вам нужно конвертировать его:

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

и теперь вы можете сделать

 hist(we)

и другие числовые операции.

3 голосов
/ 21 февраля 2013

Используйте аргумент dec , чтобы установить "," в качестве десятичной точки, добавив:

 ce <- read.table("file.txt", header = TRUE, dec = ",")
3 голосов
/ 25 мая 2012

Обратите внимание, что вы также можете построить график непосредственно из ce (после удаления запятой), используя имя столбца:

hist(ce$Weight)

(В отличие от использования hist(ce[1]), что привело бы к той же ошибке «должен быть числовой».)

Это также работает для результата запроса к базе данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...