如何按R中的列类更改数据框中的值

时间:2015-04-22 20:24:03

标签: r class frame apply

我有一个包含一组不同变量的框架 - 整数,因子,逻辑 - 我想重新编码所有" 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)时,会引入错误。感谢您对如何处理此问题的所有想法。

1 个答案:

答案 0 :(得分:1)

apply返回字符类型的矩阵。 as.data.frame默认情况下将其转换为系数。相反,你可以做到

dat <- as.data.frame(lapply(frame, function(x) ifelse(is.na(x), -9, x) ) )