首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >添加两个附加值

添加两个附加值
EN

Stack Overflow用户
提问于 2019-12-28 19:36:34
回答 1查看 64关注 0票数 1

我在学习如何使用这个程序。我有一个名为X的向量,它的值称为X。我需要在向量中的值11之后添加一个零,所以我使用了追加的函数:

代码语言:javascript
复制
X<- append(X, 0, after=11)

它正常工作,但当我想在向量中的两个不同值之间添加两个零时,我会遇到问题。如何向函数指示在值3和11之后需要一个零?我尝试过使用after= c(3,11)和after= (3,11),但它不起作用。

现在,我已经通过再次编写它来修复它,但是我确信有一个更好的解决方案:

代码语言:javascript
复制
X<- append(X, 0, after=3); X<- append(X, 0, after=11)

谢谢,对不起,因为我的英语不太好

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-12-28 19:47:52

如果我们在多个位置插入

代码语言:javascript
复制
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

它可以包装成一个函数。

代码语言:javascript
复制
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

数据

代码语言:javascript
复制
X <- c(3, 4, 2, 5, 3, 9, 10, 12, 14)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59514254

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档