我在structure()
看着R-help。帮助文件给出的示例如下:
structure(1:6, dim=2:3)
[,1] [,2] [,3]
[1,] 1 3 5
[2,] 2 4 6
创建了一个非常漂亮的2乘3矩阵。但是,当我尝试
时structure(1:8, dim=2:4)
它无效。为什么?另一个问题是我应该何时使用此structure()
函数?我不明白为什么我们需要它,因为我们有matrix()
和data.frame()
等等。
答案 0 :(得分:4)
您的代码不起作用的原因是因为2:4
得出(2,3,4)。如果你想要一个2x4矩阵,你想要c(2,4)
。也就是说,使用structure
设置矢量上的属性以将其转换为矩阵是一种非常奇怪的方式。 structure
只会返回带有附加/修改属性的对象副本,在您的情况下利用R将矩阵表示为具有dim
属性的向量的事实。
答案 1 :(得分:0)
如果你想要一个数组,那么使用'array'函数。
array(1:8, dim=2:4)
R中的初学者需要'结构'的次数不多。