【发布时间】:2016-01-25 23:10:12
【问题描述】:
我读过这些:
-
https://stackoverflow.com/a/5159049/1175496
矩阵用于相同类型的数据。
-
https://stackoverflow.com/q/29732279/1175496
向量(以及矩阵)只能接受一种类型的数据
如果矩阵只能接受一种数据类型,我为什么要这样做:
> m_list<-matrix(list('1',2,3,4),2,2)
> m_list
[,1] [,2]
[1,] "1" 3
[2,] 2 4
控制台输出看起来像是在组合字符和整数数据类型。 控制台输出类似于此矩阵:
> m_vector<-matrix(1:4,2,2)
> m_vector
[,1] [,2]
[1,] 1 3
[2,] 2 4
当我分配给 m_list 时,它不会强制其他值(如在 https://stackoverflow.com/q/29732279/1175496 中)
> m_list[2,2] <-'4'
> m_list
[,1] [,2]
[1,] "1" 3
[2,] 2 "4"
【问题讨论】:
-
是的,这里的矩阵还是一个类型/模式单一的向量。试试
?vector看看向量的类型。 -
我认为将矩阵保留为一种类型通常是个好主意(例如纯
numeric)。但是,我会对以这种方式使用矩阵 (list) 对计算性能的影响感兴趣;虽然最有力的论据可能是事情不会变得混乱...... -
如果您想要精确的定义,我建议您阅读
?matrix而不是 SO。 -
如果您想要一个具有不同数据类型的矩阵,请使用数据框 (/data.table/ tibble)(不要像这样破坏列表矩阵,它会在任何重要的操作上失败)。