Не могу нарисовать гистограмму, 'x' должно быть числовым

StackOverflow https://stackoverflow.com/questions/2349205

  •  23-09-2019
  •  | 
  •  

Вопрос

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

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' должно быть числовым.

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

Это было полезно?

Решение

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

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

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

 hist(we)

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

Другие советы

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

hist(ce$Weight)

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

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

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

 ce <- read.table("file.txt", header = TRUE, dec = ",")
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top