|
将数据框转换成矩阵(2列),再将矩阵第1列从字符型转换成数值型,结果整个矩阵变成了1列
> mouse<-data.frame(
+ x=c(164,190,203,205,206,214,228,257,185,197),
+ a=factor(c(rep(1,3),rep(2,2),rep(3,3),rep(4,2)))
+ )
> mouse
得到如下数据框:
x a
1 164 1
2 190 1
3 203 1
4 205 2
5 206 2
6 214 3
7 228 3
8 257 3
9 185 4
10 197 4
将数据框转换成矩阵:
> mouse.matrix<-as.matrix(mouse)
> mouse.matrix
x a
[1,] "164" "1"
[2,] "190" "1"
[3,] "203" "1"
[4,] "205" "2"
[5,] "206" "2"
[6,] "214" "3"
[7,] "228" "3"
[8,] "257" "3"
[9,] "185" "4"
[10,] "197" "4"
x列变成了字符,想把x列转换成数值:
> mouse.matrix[,1]<-lapply(mouse.matrix[,1],as.numeric)
> str(mouse.matrix)
List of 20
$ : num 164
$ : num 190
$ : num 203
$ : num 205
$ : num 206
$ : num 214
$ : num 228
$ : num 257
$ : num 185
$ : num 197
$ : chr "1"
$ : chr "1"
$ : chr "1"
$ : chr "2"
$ : chr "2"
$ : chr "3"
$ : chr "3"
$ : chr "3"
$ : chr "4"
$ : chr "4"
第一列是转换成了数值,查看矩阵。
> mouse.matrix
[[1]]
[1] 164
[[2]]
[1] 190
[[3]]
[1] 203
[[4]]
[1] 205
[[5]]
[1] 206
[[6]]
[1] 214
[[7]]
[1] 228
[[8]]
[1] 257
[[9]]
[1] 185
[[10]]
[1] 197
[[11]]
[1] "1"
[[12]]
[1] "1"
[[13]]
[1] "1"
[[14]]
[1] "2"
[[15]]
[1] "2"
[[16]]
[1] "3"
[[17]]
[1] "3"
[[18]]
[1] "3"
[[19]]
[1] "4"
[[20]]
[1] "4"
矩阵变成了一列,不再是2列。。。
有什么办法能转换列的类型,但保持矩阵结构(列数)不变吗?
|
|