我有R中的向量包含大量的0和一些非零數字。每個向量都以非零數字開頭。如何填寫向量中的值?
例如< 1,0,0,0,0,0,2,0,0,0,0,0,4,0,0,0>
我想設置所有的零等於最近的非零數字。
I.e.這個載體將變成< 1,1,1,1,1,1,2,2,2,2,2,2,4,4,4,4>
我需要這樣做約100每個媒體包含約600萬條記錄。目前我正在使用for循環:
for(k in 1:length(vector){
if(vector[k] == 0){
vector[k] <- vector[k-1]
}
}
有沒有更有效的方法來做到這一點?
謝謝!
是向量順序除零之外?如果是這樣,我認爲你應該可以使用'cummax'。即:'矢量< - cummax(矢量)' – rosscova
我認爲主要是前者,但真的只是提高它作爲一個好點。我沒有專門投票,但我確實認爲這是一個很好的建議。 – rosscova
如果您將鼠標懸停在upvote箭頭上,則表示「此評論添加了對帖子有用的內容」。我認爲這正是它的意思。也許不是完整的答案,但增加了一些有用的東西。 – G5W