|
搞了一下午了,还没搞明白,求助:想把数据框某列数值(2:6)转换成因子,结果全部因子都是第1个数值(2)。
建立一个数据框:
> a<-data.frame(
+ x1=1:5,
+ x2=2:6,
+ x3=3:7,
+ y=5:9)
> a
x1 x2 x3 y
1 1 2 3 5
2 2 3 4 6
3 3 4 5 7
4 4 5 6 8
5 5 6 7 9
把数据框的第2列(x2)转换成因子:
> a[,2]<-lapply(a[,2],as.factor)
Warning message:
In `[<-.data.frame`(`*tmp*`, , 2, value = list(1L, 1L, 1L, 1L, 1L)) :
provided 5 variables to replace 1 variables
输出转换后的数据框,x2转换成了因子,但水平都是原x2的第一个值:
> a
x1 x2 x3 y
1 1 2 3 5
2 2 2 4 6
3 3 2 5 7
4 4 2 6 8
5 5 2 7 9
有什么办法能把x2转换成因子2,3,4,5,6吗?
谢谢大家!
|
|