но часть из них содержат числа, их нужно перевести в numeric, т.е. нужно что-то вроде функции "переведи в нумерик, если возможно, т.е. при коерсинге не создается NA, иначе оставь кэрэктер".
Можно насильно перевести все в нумерик, посчитать наличие появившихся NA. Можно попробовать пройтись регулярками по каждому столбцу, если есть буквы - не переводить в нумерик. Но все это кажется очень медленными и неэффективными решениями (да еще и с warning в первом случае). Мб есть какая-то простая эффективная функция, которая делает приятно?
`> dt <- data.table(let = LETTERS[1:3], nums = c(as.character(1:3)))
> str(dt)
Classes ‘data.table’ and 'data.frame': 3 obs. of 2 variables:
$ let : chr "A" "B" "C"
$ nums: chr "1" "2" "3"
> newdt <- magicfunction(dt)
> str(newdt)
Classes ‘data.table’ and 'data.frame': 3 obs. of 2 variables:
$ let : chr "A" "B" "C"
$ nums: num 1 2 3`
type.convert(..., as.is = TRUE).
Обсуждают сегодня