我正在尝试将具有46列和28行的矩阵转换为num,如下所示:
chr [1:28, 1:46] "12.96720" "10.31482" "10.61680" "11.13120"
"10.48705" " 9.525684" " 9.942551" ...
- attr(*, "dimnames")=List of 2
..$ : chr [1:28] "BPWG " "BWBG" "GGGW" "GGPB" ...
..$ : NULL
但是,到目前为止,当我这样做时,矩阵会失去所有形状,并且基本上我会得到一个列表。我尝试过:
lapply(ggg2,function(x) as.numeric(as.character(x)))
如何转换它以保留46列和28行?
谢谢
答案 0 :(得分:2)
matrix
是具有暗淡属性的vector
。因此,我们可以直接更改class
class(gg2) <- "numeric"
gg2
# [,1] [,2]
#BPG 12.96 1.5
#BWG 10.31 1.6
#BWBG 10.41 18.0
lapply
的问题在于它遍历每个单元。对于data.frame
,单位是一列,而对于vector/matrix
,单位是一个观察值
gg2 <- matrix(c("12.96", "10.31", "10.41", "1.5", "1.6", "18"),
dimnames = list(c("BPG", "BWG", "BWBG"), NULL), 3, 2)