我不是 R 的新手,但以下是最令人困惑的。
我有一个分类变量的数据框(尽管矩阵同样存在问题),其取值为 +1/-1,我想将其转换为因子。
mat <- matrix(sample(c(-1, +1), 16, replace = T), nrow = 4)
mat <- data.frame(mat)
但是,使用
mat <- apply(mat, 2, factor)
将整数转换为字符而不是因子:
> mat
[,1] [,2] [,3] [,4]
[1,] "-1" "1" "-1" "1"
[2,] "-1" "-1" "-1" "-1"
[3,] "-1" "1" "1" "1"
[4,] "-1" "-1" "1" "1"
也许在同样的情况下(我的一些其他数据也遇到了这种问题)试图将矩阵和数据帧中的字符名称转换为因子会导致更令人困惑的行为:
mat2 <- matrix(sample(letters, 16, replace = T), nrow = 4)
> mat2
[,1] [,2] [,3] [,4]
[1,] "x" "m" "r" "e"
[2,] "u" "r" "b" "p"
[3,] "j" "p" "h" "j"
[4,] "k" "s" "e" "x"
mat2[,1] <- factor(mat2[,1])
> mat2
[,1] [,2] [,3] [,4]
[1,] "4" "m" "r" "e"
[2,] "3" "r" "b" "p"
[3,] "1" "p" "h" "j"
[4,] "2" "s" "e" "x"
任何帮助或澄清将不胜感激。