Итак, у меня есть таблица данных с тысячами переменных. Однако данные не очень чистые, поэтому я выполнил следующий фрагмент кода, чтобы удалить все -
и серии -
из моего dt
.
dt <- as.data.table(lapply(dt, function(x) {
gsub("-+", "", x)
}))
Однако этот код преобразует все столбцы в character
векторов. Я хотел бы переформатировать все переменные в их исходное значение class
, а также любые переменные, которые из class
character
, в число c, если это возможно (так, в случае, если переменная имеет число c, но имеет хотя бы одно наблюдение с -
где-то, например 123-
.
Это можно сделать с помощью fwrite()
, а затем fread()
, но я бы хотел избежать записи временного файла только для его повторного импорта к тому же сеансу, что и этот, занимают память и время.
Пример:
Допустим, у вас есть следующие данные:
library(data.table)
dt <- data.table(nums = 11:20,
char_nums = c(as.character(1:9), "10-"),
letters = letters[1:10])
# nums is of class integer, char_nums is of class character
str(dt)
Цель состоит в том, чтобы удалить все серии -
и иметь nums
и char_nums
из class
integer
, сохраняя class
character
из letters
.