Не могу нарисовать гистограмму, 'x' должно быть числовым
Вопрос
У меня есть файл данных в этом формате:
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 = ",")