【发布时间】:2017-02-13 22:19:48
【问题描述】:
让我们以 mtcars 为例,创建一个新变量:
mtcars$name <- rownames(mtcars)
mtcars[,] <- lapply(mtcars, factor)
mtcars[,] <- lapply(mtcars, as.numeric)
现在名字被转换成我绝对不想要的数字
> mtcars
mpg cyl disp hp drat wt qsec vs am gear carb name
Mazda RX4 16 2 13 11 16 9 6 1 2 2 4 18
Mazda RX4 Wag 16 2 13 11 16 12 10 1 2 2 4 19
Datsun 710 19 1 6 6 15 7 22 2 2 2 1 5
Hornet 4 Drive 17 2 16 11 5 16 24 2 1 1 1 13
Hornet Sportabout 13 3 23 15 6 18 10 1 1 1 2 14
Valiant 12 2 15 9 1 19 29 2 1 1 1 31
Duster 360 3 3 23 20 7 21 5 1 1 1 4 7
Merc 240D 20 1 12 2 11 15 27 2 1 2 2 21
如何将因子转换回正确的格式。(char,log,num ...)?
【问题讨论】:
-
您可以在“警告”下的
help("factor")中找到。 -
R 常见问题解答 7.10:cran.r-project.org/doc/FAQ/…
-
这正是重复问题所要解决的问题。确定哪些列是因子,然后仅将转换应用于这些列。
-
那么他们应该没有问题。由于 all 列现在是因子,因此他们希望将它们全部转换回数字。我不清楚这个问题...... ???
-
我认为不可能做我想做的事。我认为因子水平是添加到类型中的东西(如 num、char ...)。但因素是自己的类型。 R 怎么能知道什么时候离开因素原来是 num 和什么是 char。