如何从rep()函数返回的向量创建矩阵?

13

x=1:20

[1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

rep(x,2)

[1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

View(rep(x,2))

在使用R语言的rep()函数生成一个20X2向量时遇到了问题。

实际上,当我在R工作区中查看数据时,它被显示为40X1向量,即1-20 1-20。

如何使用rep()函数创建一个重复的20X2列向量呢? 谢谢。

1个回答

23
rep函数将返回一个原子向量。如果您需要一个矩阵,请对结果使用matrix函数,并使用适当的维度参数。例如:
x <- 1:20
matrix(rep(x,2), ncol = 2)
      [,1] [,2]
 [1,]    1    1
 [2,]    2    2
 [3,]    3    3
 [4,]    4    4
 [5,]    5    5
 [6,]    6    6
 [7,]    7    7
 [8,]    8    8
 [9,]    9    9
[10,]   10   10
[11,]   11   11
[12,]   12   12
[13,]   13   13
[14,]   14   14
[15,]   15   15
[16,]   16   16
[17,]   17   17
[18,]   18   18
[19,]   19   19
[20,]   20   20

3
快速绘画麦格劳,你比我快了0.000003秒+1。 - Tyler Rinker
这种情况我也经常遇到。 - mnel
嘿mnel,谢谢。我注意到当我在R中创建向量时,例如x=1:20,R可以给它长度(length(x)=20),但是当我要求它给出向量的维度时,它会给我一个NULL(dim(x)=NULL)。当这些向量被创建时,R是如何识别它们的呢?谢谢。 - gabriel
3
dim函数返回对象(如矩阵、数组或数据框)的dim属性,向量没有dim属性。原子向量有length属性但没有dim属性,因此它会返回NULL - mnel

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接