【发布时间】:2015-10-26 13:47:34
【问题描述】:
我只想将数据框的两列转换为因子。 我使用 apply 函数,但结果是字符,而不是因子。 知道我做错了什么吗?
aa <- c(1,2,3,4)
bb <- c(6,7,8,9)
xx <- data.frame(aa, bb)
xx
yy <- apply(xx, 2, function(xx) as.factor(xx))
# aa bb
# [1,] "1" "6"
# [2,] "2" "7"
# [3,] "3" "8"
# [4,] "4" "9"
当我对独立向量实施相同的操作时,它可以工作:
nn <- c(1,2,3,4)
mm <- as.factor(nn)
mm
【问题讨论】:
-
apply正在返回一个矩阵,它要求所有元素都是相同的类型。尝试使用as.data.frame(lapply(xx, factor))。 -
是的,它有效。请把它作为一个答案。这不是很明显必须通过列表来完成。
-
@akrun 重新打开这个骗子只是幼稚的行为。我无法关闭 SO 上的所有欺骗。如果可以,欢迎您这样做。