R 将因子转换为整数时产生的NaN

R 将因子转换为整数时产生的NaN,r,R,我需要代码修复。我有一个数据框,它由非数字(Var)和数字(Var.num)变量组成,如下所示(一行): 至少有一个数值变量被认为是一个因子(每行可能不同),为了使我的其他代码正常工作(无需在此发布),我需要将所有因子更改为整数,在快速研究和调整后,我得到了如下结果: newdf <- lapply(df, function(x) if(is.factor(x)) as.integer(levels(x))[x] else x) 你能告诉我我的代码的哪一部分应该被修改,这样非数值变

我需要代码修复。我有一个数据框,它由非数字(
Var
)和数字(
Var.num
)变量组成,如下所示(一行):

至少有一个数值变量被认为是一个
因子
(每行可能不同),为了使我的其他代码正常工作(无需在此发布),我需要将所有
因子
更改为
整数
,在快速研究和调整后,我得到了如下结果:

   newdf <- lapply(df, function(x) if(is.factor(x)) as.integer(levels(x))[x] else x)

你能告诉我我的代码的哪一部分应该被修改,这样非数值变量在输出中会和在预转换的数据帧中一样吗?

可能只是
unclass(x)
对于
is.factor
分支?
我忘了的一件新事情是在FUN(x[[i]],…):强制引入的NAs
   newdf <- lapply(df, function(x) if(is.factor(x)) as.integer(levels(x))[x] else x)
    Var1    Var2    Var3    Var4    Var.num1    Var.num2    Var.num3
1   #N/D!   #N/D!   #N/D!   #N/D!       2010        2011         1.2