У меня есть df с +100 столбцами, и их типы данных:
> table(sapply(df,class))
character factor integer
107 1 8
Тем не менее, существует множество chr
столбцов, которые на самом деле являются целыми числами или числами с плавающей запятой.Следующие столбцы (a,b,c)
являются примером из этих chr
столбцов типов данных в моей df:
a b c
1 "4" "35.2" "4"
2 "6" "21.4" "6"
3 "No value" "-10.1" "No value"
4 "4" "25.4" "3.2"
5 "2" "No value" "6.5"
6 "5" "65.0" "No value"
Я знаю, как выбрать каждый столбец и заменить "No value"
на NaN
, а затем изменитьстолбцы от chr
до integer
или float
.Проблема в том, что они около 60-70 столбцов.Так что это очень трудоемкая задача, и я думаю, что должен быть более эффективный путь.Я пробовал эти альтернативы:
- Цикл по столбцам df с оператором if (все еще пытаюсь выяснить, какой тип оператора if может убедить меня в отсутствии скрытых ошибок, так как я не могу проверить, еслистолбцы 60-70 конвертируются соответственно).
- Попытка выяснить способ чтения кода (read.csv (), read_table (), read.delim () и т. Д.) Для выдачи в качестве выходных данных df с правильными типами данных и замены
"No value"
с NaN
автоматически.
Итак, знаете ли вы более эффективный способ преобразования этих столбцов 60-70 chr
(с числовыми значениями) в целочисленные / с плавающей точкой / числовые типы данных, чемпревращать их один за другим?