開始矩陣我想添加的每個行中的值對每個第二列在以下形式的矩陣:添加每隔一列中從第3列中的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列中的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循環的情況下完成嗎?
假設您的數據框名爲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
其中[, -c(1,2)]
丟棄前兩列[, c(TRUE, FALSE)]
保持每隔一列。
rowSums(df[,seq(from=3, to=ncol(df), by=2)])
是的,這隻容易7列,但如果我想用它的矩陣不同長度? – user1723765
@ user1723765更新解決方案與不同列號 –
一起工作太棒了,謝謝! – user1723765