我想使用apply()以下方法将变量转换为因子:
a <- data.frame(x1 = rnorm(100),
x2 = sample(c("a","b"), 100, replace = T),
x3 = factor(c(rep("a",50) , rep("b",50))))
a2 <- apply(a, 2,as.factor)
apply(a2, 2,class)
Run Code Online (Sandbox Code Playgroud)
结果是:
x1 x2 x3
"character" "character" "character"
Run Code Online (Sandbox Code Playgroud)
我不明白为什么这会导致字符向量而不是因子向量.
我有一个数据帧.我想检查class每一列.
x1 = rep(1:4, times=5)
x2 = factor(rep(letters[1:4], times=5))
xdat = data.frame(x1, x2)
> class(xdat)
[1] "data.frame"
> class(xdat$x1)
[1] "integer"
> class(xdat$x2)
[1] "factor"
Run Code Online (Sandbox Code Playgroud)
但是,想象一下,我有很多列,因此需要apply()用来帮助我做到这一点.但它不起作用.
apply(xdat, 2, class)
x1 x2
"character" "character"
Run Code Online (Sandbox Code Playgroud)
为什么我不能apply()用来查看每列的数据类型?或者我该怎么办?
谢谢!