2014-02-25 28 views
3

我試圖創建一個對在某個時間點觀察到的最大值的引用。這是一個例子,可以瞭解我正在嘗試做的事情。每行都單獨處理。我已經考慮了在行和列上應用的一些組合,但我希望能夠在不使用循環的情況下一次爲整個矩陣計算此值。在R中矩陣中的行獲取最大值到一個點

說我有一個矩陣

1, 2, 3, 2, 2, 5, 4, 5, 7 

2, 3, 3, 4, 2, 3, 5, 4, 6 

我想創建一個新的矩陣,看起來像這樣

1, 2, 3, 3, 3, 5, 5, 5, 7 

2, 3, 3, 4, 4, 4, 5, 5, 6 

感謝。

回答

4

cummax或累計最高是你所需要的:

dat <- as.matrix(read.csv(text=" 
1, 2, 3, 2, 2, 5, 4, 5, 7 
2, 3, 3, 4, 2, 3, 5, 4, 6", 
header=FALSE)) 

dat 
#  V1 V2 V3 V4 V5 V6 V7 V8 V9 
#[1,] 1 2 3 2 2 5 4 5 7 
#[2,] 2 3 3 4 2 3 5 4 6 

t(apply(dat,1,cummax)) 

#  V1 V2 V3 V4 V5 V6 V7 V8 V9 
#[1,] 1 2 3 3 3 5 5 5 7 
#[2,] 2 3 3 4 4 4 5 5 6 
+0

是的,這是完全正確的。 – rrbest