2015-01-26 78 views
4

我是R编程的新手。在R语言教程中,我发现矩阵不能包含来自不同类的元素。矩阵可以包含不同类的元素

但我能够按照以下步骤创建一个矩阵:

x<-matrix(list(1,"2",TRUE,1+1i),nrow=2,ncol=2) 

请解释我缺少什么?

回答

5

矩阵实现为具有dim属性的向量。一个列表在技术上是一种矢量,所以你创建的是在这个意义上的“合法”。

但它不是非常有用,因为大多数将矩阵作为输入的函数期望矩阵是原子类型(列表是递归类型的对象)。

+0

那么我可以使用矩阵,而不是可以包含不同类的元素的数据框? – 2015-01-26 22:00:57

+1

@jatinkashyap:你*可以*,但你*不应该*。就像我在回答中所说的那样,大多数函数都期望所有的矩阵元素都是相同的类型。 – 2015-01-26 22:04:15

+0

感谢@joshua的回应。我知道了 – 2015-01-26 22:05:09