Строка в int / float, множество столбцов - R - PullRequest
0 голосов
/ 23 декабря 2018

У меня есть 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 столбцов.Так что это очень трудоемкая задача, и я думаю, что должен быть более эффективный путь.Я пробовал эти альтернативы:

  1. Цикл по столбцам df с оператором if (все еще пытаюсь выяснить, какой тип оператора if может убедить меня в отсутствии скрытых ошибок, так как я не могу проверить, еслистолбцы 60-70 конвертируются соответственно).
  2. Попытка выяснить способ чтения кода (read.csv (), read_table (), read.delim () и т. Д.) Для выдачи в качестве выходных данных df с правильными типами данных и замены "No value" с NaN автоматически.

Итак, знаете ли вы более эффективный способ преобразования этих столбцов 60-70 chr (с числовыми значениями) в целочисленные / с плавающей точкой / числовые типы данных, чемпревращать их один за другим?

...