从r中的第3列开始,在矩阵中添加每隔一列

时间:2013-01-01 18:33:16

标签: r

我想在以下格式的矩阵中为每第二列添加每行的值:

1  1  100 2 104 4 200
2  1  100 2 103 3 203
3  1  100 3 101 3 304
4  1  100 4 105 2 201

在这里,我想添加第3列,然后每隔一列,产生以下输出:

404
406
505
406

这可以在没有for循环的情况下完成吗?

3 个答案:

答案 0 :(得分:5)

假设您的数据框名为df

 apply(df,1,function(x) sum(x[seq(3,length(x),2)]))
[1] 404 406 505 406

答案 1 :(得分:5)

你可以这样做:

rowSums(df[,-c(1,2)][, c(TRUE, FALSE)])
# [1] 404 406 505 406

其中[, -c(1,2)]丢弃前两列,[, c(TRUE, FALSE)]保留其他所有列。

答案 2 :(得分:2)

rowSums(df[,seq(from=3, to=ncol(df), by=2)])