cbind循环行添加到R中的最后一行

时间:2015-02-28 16:25:04

标签: r cbind

我有一个关于cbinding回收物品的问题。我将我的问题简化为以下代码。

我有两个对象“a”和“b”。 “a”有5行,“b”有10行。

当我找到它们时,我得到一个包含10行的data.frame,我的列“a”循环使用,直到达到10行。我的问题是,如何回收值,以便增加长度(a)。谢谢!

a <- c(4, 3, 5, 2, 8)
b <- c(1:10)

cbind(a,b)


   a  b
1  4  1
2  3  2
3  5  3
4  2  4
5  8  5
6  4  6
7  3  7
8  5  8
9  2  9
10 8 10

What I want to do: a[6] = a[5] + 4, a[7] = a[5] + 5, ... a[10] = a[5] + 8


   a  b
1  4  1
2  3  2
3  5  3
4  2  4
5  8  5
6  12  6
7  11  7
8  13  8
9  10  9
10 16 10

1 个答案:

答案 0 :(得分:1)

你是说这个意思吗?我有5个项目,我在接下来的5个项目中添加[5],在接下来的5个项目中添加2 * a [5],依此类推。

a <- c(4, 3, 5, 2, 8)
b <- c(1:11)
counter <-0:floor(length(b)-1)/length(a))
new.col <- rep(a[length(a)] * counter, each = length(a)) + a
length(new.col) <- length(b)
new.col
[1]  4  3  5  2  8 12 11 13 10 16

第一个长度(a)项目保持不变,我们将[5]添加到下一个长度(a)项目,2 * a [5]到下一个长度(a)项目等等......