as.factor无法在R上使用INT值

大家好,请帮我。我得到了这个数据集:

  q1  q2   q3 m1 m2 b1 b2
A 78 150 2887  4  4  0  1
B 74 142 2904  4  4  1  1
C 79 137 1564  4  4  1  0
D 80 164 4522  2  2  0  0
E 74 173 5025  2  3  0  1
F 73 140 1971  3  3  0  1

我想将m1:b2转换为因子。如果我做

data[,4:7] <- as.factor(data[,4:7]) 

它不起作用,值更改为char向量。它像这样弄乱了:

  q1  q2   q3                  m1                  m2                  b1
A 78 150 2887 c(4, 4, 4, 2, 2, 3) c(0, 1, 1, 0, 0, 0) c(4, 4, 4, 2, 2, 3)
B 74 142 2904 c(4, 4, 4, 2, 3, 3) c(1, 1, 0, 0, 1, 1) c(4, 4, 4, 2, 3, 3)
C 79 137 1564 c(0, 1, 1, 0, 0, 0) c(4, 4, 4, 2, 2, 3) c(0, 1, 1, 0, 0, 0)
D 80 164 4522 c(1, 1, 0, 0, 1, 1) c(4, 4, 4, 2, 3, 3) c(1, 1, 0, 0, 1, 1)
E 74 173 5025 c(4, 4, 4, 2, 2, 3) c(0, 1, 1, 0, 0, 0) c(4, 4, 4, 2, 2, 3)
F 73 140 1971 c(4, 4, 4, 2, 3, 3) c(1, 1, 0, 0, 1, 1) c(4, 4, 4, 2, 3, 3)
                   b2
A c(0, 1, 1, 0, 0, 0)
B c(1, 1, 0, 0, 1, 1)
C c(4, 4, 4, 2, 2, 3)
D c(4, 4, 4, 2, 3, 3)
E c(0, 1, 1, 0, 0, 0)
F c(1, 1, 0, 0, 1, 1)

但是,如果我使用lapply,它可以正常工作。你能解释一下为什么吗?因为我在其他情况下一直使用as.factor(d []),所以它可以与其他data.frame对象一起正常工作。谢谢。

评论