将数据帧列转换为因子时的奇怪行为

时间:2013-09-11 20:54:50

标签: r dataframe

我正在尝试将数据框的所有列转换为因子。但是,转换为因素会使我的所有条目变为string而不是numeric。见例:

df <- data.frame(a = c(1,2,3), b = c(4,5,6))
df_factor <- apply(df, 2, factor)

这就是我得到的:

 #> df_factor
 #     a   b  
 #[1,] "1" "4"
 #[2,] "2" "5"
 #[3,] "3" "6"

您是否知道问题的来源?

谢谢,

2 个答案:

答案 0 :(得分:1)

apply(df, 2, factor)将您的数据框架更改为矩阵。请改用:

df_factor <- as.data.frame(lapply(df, factor))

答案 1 :(得分:0)

plyr替代方案:

library(plyr)
df2 <- colwise(factor)(df)