如何在R中连接两个数组

4

我有两个数组。

使用numpy.append我们可以合并两个数组。

在R中如何做到同样的事情?

merge不能做到这一点。

Python 输出/示例:

   a=np.array([1,2,3,4,5,5])
   b=np.array([0,0,0,0,0,0])
   np.append(a,b)

   array([1, 2, 3, 4, 5, 5, 0, 0, 0, 0, 0, 0])   # this is what I want

x<-c(mat, (0.0) * (l - length(demeaned)), rep(0, 30 - ncol(mat)))

mat是一个20行的矩阵

l - length(demeaned)等于10

我希望最终结果是30列


1
用命令 c(a, b) - Vincent Guillemot
@VincentGuillemot 完成了,谢谢。 - Jose
@VincentGuillemot 谢谢 - Jose
2个回答

8

c 函数可以将其参数连接在一起。向量可以由数字或其他向量连接而成:

a = c(1,2,3,4,5,5)
b = c(0,0,0,0,0,0)
c(a,b)

 [1] 1 2 3 4 5 5 0 0 0 0 0 0

至少对于像您Python示例中的一维数组,这等效于np.append


3

在之前的回答中,你可以使用rbindcbind从简单数组(向量)创建二维数组(矩阵):

cbind(a,b)

# output
 a b
[1,] 1 0
[2,] 2 0
[3,] 3 0
[4,] 4 0
[5,] 5 0
[6,] 5 0

或者

rbind(a,b)

# output
[,1] [,2] [,3] [,4] [,5] [,6]
a    1    2    3    4    5    5
b    0    0    0    0    0    0

如果您想将其转换回向量,请使用 as.vector
as.vector(rbind(a,b))

将为您提供一个交替元素的联合向量。

另外,请注意如果使用 recursive=TRUE 参数,c 可以使列表变平:

a <- list(1,list(1,2,list(3,4)))
b <- 10
c(a,b, recursive = TRUE)

# output
[1]  1  1  2  3  4 10

最后,您可以使用rep生成重复数字序列:
rep(0,10)

使用 c(a,b,rep(0, l - length(demeaned)))。我修改了上面的帖子。 - slava-kohut
mat和demeaned是相同的,我忘记改它的名字了,语法将保持不变? - Jose
如果mat是一个数组,那么语法就是c(mat,rep(0, l - length(mat))) - slava-kohut

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