R не будет распознавать данные как числовые
Со времени последнего обновления Excel, R не распознает мои файлы как числовые; даже те, которые я использовал в прошлом. Я считаю, что источником моей проблемы является то, что мой Excel на французском языке и изменил десятичную точку по умолчанию с "." на "," (но это никогда не вызывало проблем за последние 5 лет).
Чтобы выяснить источник проблемы, я попытался использовать только один столбец данных (как с.,, Так и), но R всегда выдает мне эту ошибку:
"Ошибка: (список) объект не может быть приведен к типу 'double'"
Вот пример данных (сохраненных как файл data.csv)
23.15
23.35
23.46
20.88
20.77
22.05
21.5
22.65
21.93
22.65
22.47
22.75
22.05
21.95
22.3
19.48
19.44
20.55
20.5
21.65
20.83
21.85
21.77
21.95
23.35
23.55
23.86
21.38
21.29
22.35
22.6
Я использовал оба:
read.csv AND read.csv2 (read.csv2 is the way to go)
После импорта в R это выглядит так:
Но когда я спрашиваю
is.numeric(data)
я получил
> [1] FALSE
Если я попытаюсь привести к:
as.numeric
я получил
> Error: (list) object cannot be coerced to type 'double'
Я действительно в растерянности здесь; это кажется такой плохой, но простой проблемой совместимости. Спасибо за вашу помощь.
К вашему сведению, я уже сделал это устранение неполадок:
- Преобразовал все старые "." на "," (в противном случае Excel не видит их как числа, так же как и R.
- Изменен язык по умолчанию в Excel с французского на английский. Так как у меня Mac, я смог изменить только "редактирование", а не язык отображения по умолчанию.
- Язык моего ноутбука по умолчанию на английском.
1 ответ
Я решил проблему. Оказывается, я чередовал несколько вопросов:
- Первоначально использовать read.csv2 с моим новым обновлением Excel.
- с моей версией, десятичные точки ДОЛЖНЫ быть "," чтобы Excel распознал как числовой (и R тоже. R будет читать "." в моей версии, но не распознавать как числовой ")
В моем
summarise()
функция (с пакетами dplyr и tidyr) Я ошибочно помещал "" вокруг имени столбца, от которого я хотел получить среднее значение. Ex.summarise(mean=mean("temp"))
(PROPER WAY =>summarise(mean=mean(temp))
Я не спрашивал должным образом:
as.numeric(data[4])
функция. Как указал @MrFlick, фрейм данных не был числовым, а спрашивал:as.numeric(data[[4]])
Выделил данные столбца.as.numeric(data[,4])
тоже работает.Наконец, проблема заключалась не в последнем обновлении Excel, а в моей новой операционной системе (High Sierra), которая была несовместима с моей версией Excel (2011). Мне пришлось обновить версию 2016 года, чтобы вернуть файл к исходному значению "." форматировать и по существу решать проблемы чтения с R.
Ура!