R не определяет столбцы как числовые - PullRequest
0 голосов
/ 03 августа 2020

Через пару месяцев go я начал анализировать свои данные, которые работали нормально. Теперь R больше не распознает некоторые столбцы как numeri c. Я попытался вручную изменить их на numeri c, но в итоге у меня остались NA. Теперь я изменил пустые строки на 0, и это помогло получить еще два столбца numeri c, но в итоге некоторые из них обрабатываются как символы.

Ben_sichel <- read.csv2("neu.csv", header = TRUE, sep = ";", dec = ",", stringsAsFactors = FALSE)[129:1859, ]

Это то, что у меня получается :

'data.frame':   1731 obs. of  41 variables:
....
 $ SFRB     : num  0 0 2.2 20.8 0 20.9 15.2 0 16.4 0 ...
 $ SFRD     : num  0 0 1.2 11.7 0 5.7 7.7 0 4.4 0 ...
 $ ABW      : num  0 0 65 60 0 60 75 0 70 0 ...
....
 $ SAD      : chr  "0" "0" "0" "0" ...
 $ SPP      : chr  "0" "0" "0" "0" ...
....
 $ AL       : chr  "0" "154,8" "54,0" "60,7" ...
 $ AB       : chr  "53,1" "72,6" "61,2" "57,8" ...
 $ AD       : num  12.6 43.5 6.1 15.6 4.2 12.7 17.1 13.6 10.1 10.7 ...
 $ AG       : num  177.9 481.2 16.3 42.8 0.8 ...

Все они должны быть числовыми c. И я не могу найти решение, почему их больше нет c. Надеюсь, я прояснил свой вопрос. Я немного новичок в R и не родной engli sh динамик.

1 Ответ

0 голосов
/ 03 августа 2020

Я думаю, ваш файл разделен точкой с запятой и существуют как запятые, так и точки. Вам нужно указать десятичный знак и знак группировки . Пакет readr может с этим справиться.

Сценарий 1: Десятичный знак - запятая (,), а знак группировки - точка (.)

readr::read_csv2("foo.csv") # all settings are default.

Сценарий 2: Десятичный знак - точка (.), а знак группировки - запятая (,)

readr::read_delim("foo.csv",
                  delim = ";",
                  trim_ws = TRUE,
                  locale = locale(decimal_mark = "."))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...