Я хотел бы преобразовать все поля, заканчивающиеся на _FL, от символа до числового. Я думал, что этот код будет работать, но это не так: все эти поля заполнены NA. Что с этим не так?Как изменить тип данных нескольких столбцов в R?
library(data.table)
#s = fread('filename.csv',header = TRUE,sep = ";",dec = ".")
s=data.table(ID=(1:10), B=rnorm(10), C_FL=c("I","N"), D_FL=(0:1), E_FL=c("N","I"))
cn=colnames(s)
# Change all fields ending with _FL from "N"/"I" to numeric 0/1
for (i in cn){
if(substr(i,nchar(i)-2,nchar(i))=='_FL'){
s[,i] = as.numeric(gsub("I",1,gsub("N",0,s[,i])))
}
}
Ваш код не воспроизводится без данных примера. – mtoto
Пример данных может быть: s = data.table (ID = (1:10), B = rnorm (10), C_FL = c ("I", "N"), D_FL = (0: 1), E_FL = c ("N", "I")) – lmocsi
добавление вывода 'dput (head (s, 30))' поможет людям помочь вам. – hrbrmstr