我有一个包含一组不同变量的框架 - 整数,因子,逻辑 - 我想重新编码所有" NAs"作为整个数据集的数字,同时保留底层变量类。例如:
frame <- data.frame("x" = rnorm(10), "y" = rep("A", 10))
frame[6,] <- NA
dat <- as.data.frame(apply(frame,2, function(x) ifelse(is.na(x)== TRUE, -9, x) ))
dat
str(dat)
然而,这里的整数变成了因素;当我在apply()函数中包含as.numeric(x)时,会引入错误。感谢您对如何处理此问题的所有想法。
答案 0 :(得分:1)
apply
返回字符类型的矩阵。 as.data.frame
默认情况下将其转换为系数。相反,你可以做到
dat <- as.data.frame(lapply(frame, function(x) ifelse(is.na(x), -9, x) ) )