Подтвердить что ты не робот

Невозможно нарисовать гистограмму, "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" должно быть числовым.
Что мне нужно сделать, чтобы нарисовать гистограммы для моих трех переменных?

4b9b3361

Ответ 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=",")