将矢量作为子向量放入另一个向量R中

时间:2015-10-07 16:04:53

标签: r vector

我有两个向量(1,2,3,4,5,6,7,8)(543,544,545) 我希望从第三个位置开始将第二个放入第一个,所以结果为(1,2,543,544,545,6,7,8)

x <- c(1:8)
r <- c(543:545)

# I tried 
replace(x,3,r)

# or like
replace(3:length(r),1,r)

但它不起作用。

2 个答案:

答案 0 :(得分:10)

最简单的方法是使用c()

轻松完成
x <- 1:8
r <- c(543,544,545)
c(x[1:2], r ,x[3:length(x)])

另一个选项是append()

append(x, values=r, after=2)

这与我之前对c()所做的完全相同。

如果你想替换值而不是追加新值,你应该选择Frank的解决方案

replace(x, list=2+1:length(r), r)

或手动

x[2+1:length(r)] <- r

修改x而不是创建新的向量。

答案 1 :(得分:4)

这是另一种方式。你得到你想要使用的矢量的长度,在我的方法中是y。然后,您指示向量中的特定位置(即x)以替换向量的一部分。在这种情况下,您想要从x中的第3个位置(即x[c(3:(3+z))])告知您想要多少个位置。您在y

中的指定位置指定了x
x <- 1:8
y <- 543:545

z <- length(y)-1

x[c(3:(3+z))] <- y

#x
#[1]   1   2 543 544 545   6   7   8