向向量

时间:2017-08-02 09:57:27

标签: r

我有一个向量,并且我想要添加多个数字的向量的每个元素,例如0和1,交替顺序。

例如,从序列0,1,2,3,4,5开始,我想先得到0,1,1,2,2,3,3,4,4,5,5,6,然后先为每个元素添加0然后再加1。

a <- c(0:5)
c(a+0, a+1) # does not give me what I want

我真正希望用这个来解决的是,我想从一个语句为真的向量中提取元素,而不管该语句是否适用于该行。

也许有人有想法?

4 个答案:

答案 0 :(得分:2)

为了交错,您可以将rbindc

一起使用
a <- c(0:5)
c(rbind(a+0,a+1))

对于后面的问题,我会使用which语句根据条件得到True的索引,然后得到相应的元素。

答案 1 :(得分:2)

更简单的Aramis7d创意实现使用rep的每个参数。

rep(1:5, each=2) + 0:1
 [1] 1 2 2 3 3 4 4 5 5 6

答案 2 :(得分:1)

为了解决你的实际问题,即#34;从一个陈述为真的向量中提取元素,然后你就可以解决这个问题&#34;,你可以解决这个问题:

让我们说条件是一个数字等于1,你想要提取这些元素,再加上它后面的元素:

a <- c(1,2,4,1,2,4,1,2,4)
condition = a==1
condition_shifted = c(FALSE,head(condition,-1))
a[condition | condition_shifted]

返回:

[1] 1 2 1 2 1 2

希望这有帮助。

答案 3 :(得分:1)

你可以尝试:

as.vector(sapply(a, function (x) rep(x,2))) + c(0,1)

给出:

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