我在学习如何使用这个程序。我有一个名为X的向量,它的值称为X。我需要在向量中的值11之后添加一个零,所以我使用了追加的函数:
X<- append(X, 0, after=11)它正常工作,但当我想在向量中的两个不同值之间添加两个零时,我会遇到问题。如何向函数指示在值3和11之后需要一个零?我尝试过使用after= c(3,11)和after= (3,11),但它不起作用。
现在,我已经通过再次编写它来修复它,但是我确信有一个更好的解决方案:
X<- append(X, 0, after=3); X<- append(X, 0, after=11)谢谢,对不起,因为我的英语不太好
发布于 2019-12-28 19:47:52
如果我们在多个位置插入
nvalues <- 2
pos <- c(3, 5, 7)
pos1 <- c(pos[1], seq_along(pos[-1]) * nvalues + pos[-1])
for(i in seq_along(pos)) X <- append(vec, c(0, 0), after = pos1[i])
X
#[1] 3 4 2 0 0 5 3 0 0 9 10 0 0 12 14它可以包装成一个函数。
f1 <- function(vec, nvalues, posvec, value) {
posvec1 <- c(posvec[1], seq_along(posvec[-1]) * nvalues +
posvec[-1])
for(i in seq_along(posvec)) vec <- append(vec,
rep(value, nvalues), after = posvec1[i])
vec
}
f1(X, 1, c(3, 5, 7), 0)
#[1] 3 4 2 0 5 3 0 9 10 0 12 14
f1(X, 2, c(3, 5, 7), 0)
#[1] 3 4 2 0 0 5 3 0 0 9 10 0 0 12 14
f1(X, 3, c(3, 5, 7), 0)
#[1] 3 4 2 0 0 0 5 3 0 0 0 9 10 0 0 0 12 14数据
X <- c(3, 4, 2, 5, 3, 9, 10, 12, 14)https://stackoverflow.com/questions/59514254
复制相似问题