Невозможно нарисовать гистограмму, "x" должно быть числовым
У меня есть файл данных с этим форматом:
Вес промышленности Тип
251 787 Kellogg h
253,9601 Kellogg a
256,0758 Kellogg h
....
Я прочитал данные и попытаюсь нарисовать гистограмму с помощью этих команд:
ce= read.table("file.txt", header= T)
we = ce[,1]
in = ce[,2]
ty = ce[,3]
hist(we)
Но я получаю эту ошибку:
Ошибка en hist.default(мы): "x" должно быть числовым.
Что мне нужно сделать, чтобы нарисовать гистограммы для моих трех переменных?
Ответы
Ответ 1
Из-за разделителя тысяч данные будут считаны как "нечисловые". Поэтому вам нужно его преобразовать:
we <- gsub(",", "", we) # remove comma
we <- as.numeric(we) # turn into numbers
и теперь вы можете сделать
hist(we)
и другие числовые операции.
Ответ 2
Обратите внимание, что вы можете также построить график непосредственно из ce
(после удаления запятой), используя имя столбца:
hist(ce$Weight)
(В отличие от использования hist(ce[1])
, что приведет к тому, что ошибка "должна быть числовой" ).
Это также работает для результата запроса базы данных.
Ответ 3
Используйте аргумент "dec", чтобы установить "," в качестве десятичной точки, добавив:
ce= read.table("file.txt", header= T, dec=",")