【发布时间】:2018-06-06 15:59:42
【问题描述】:
我正在尝试在 R 中将 numeric 和 character 类变量批量转换为 factor。我觉得这应该很简单,但实际上我遇到了一个问题
我所做的是在这里:
>sapply(df, class)
a b c
"numeric" "numeric" "numeric"
>col.names <- c("a", "b", "c")
>df[,col.names] <- sapply(df[,col.names], as.factor)
我得到的结果是这样的:
>sapply(df, class)
a b c
"character" "character" "character"
我试图弄清楚为什么它不会从数字转换为因子,而是转为字符。
通常问题是从因子到数值,所以我无法找到有关此类问题的任何信息。
【问题讨论】:
-
尝试完全相同但使用
lapply。 -
这成功了!你能告诉我为什么 lapply 有效而 sapply 无效吗?是因为 sapply 在向量上被简化了吗?
-
伊万的回答解释了差异。
-
是的。并且强制是最小公分母
character。
标签: r