我想在以下形式的矩阵中为每第二列添加每一行的值:
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
在这里,我想添加第三列,然后每隔一列,产生以下输出:
404
406
505
406
这可以在没有 for 循环的情况下完成吗?
我想在以下形式的矩阵中为每第二列添加每一行的值:
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
在这里,我想添加第三列,然后每隔一列,产生以下输出:
404
406
505
406
这可以在没有 for 循环的情况下完成吗?
假设您的数据框名为df
.
apply(df,1,function(x) sum(x[seq(3,length(x),2)]))
[1] 404 406 505 406
你可以做:
rowSums(df[,-c(1,2)][, c(TRUE, FALSE)])
# [1] 404 406 505 406
where[, -c(1,2)]
丢弃前两列并[, c(TRUE, FALSE)]
保留每隔一列。
rowSums(df[,seq(from=3, to=ncol(df), by=2)])