2013-01-01 38 views
3

開始矩陣我想添加的每個行中的值對每個第二列在以下形式的矩陣:添加每隔一列中從第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

假設您的數據框名爲df

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

是的,這隻容易7列,但如果我想用它的矩陣不同長度? – user1723765

+0

@ user1723765更新解決方案與不同列號 –

+0

一起工作太棒了,謝謝! – user1723765

4

你可以這樣做:

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

其中[, -c(1,2)]丟棄前兩列[, c(TRUE, FALSE)]保持每隔一列。

1
rowSums(df[,seq(from=3, to=ncol(df), by=2)]) 
相關問題