-1
我需要更新對象值==「修復」,以便它們更新到相同變量中的繼續值的值。我的問題是,當以前的值也是==「修復」它沒有看到更新的值(因爲很明顯它還沒有更新,爲什麼不呢?)。恐怕我沒有詞彙來問正確的問題,所以這就是它的樣子。如何將對象值設置爲相同變量的滯後值?
因此,如果這是我的數據幀(DF):
row x
1 a
2 b
3 fix
4 fix
5 fix
6 b
7 a
8 fix
9 fix
我跑我的代碼:
df$x2 <- ifelse(df$x=="fix",lag(df$x2),df$x)
我得到這個:
row x x2
1 a a
2 b b
3 fix b
4 fix fix
5 fix fix
6 b b
7 a a
8 fix a
9 fix fix
但我要的是這個:
row x x2
1 a a
2 b b
3 fix b
4 fix b
5 fix b
6 b b
7 a a
8 fix a
9 fix a
任何幫助將不勝感激(包括如何更好地框架問題和/或我的問題的標題)。
我試着運行在一個循環功能上面的代碼,但顯然沒有做是正確的,因爲我得到錯誤「分配被禁止」。 – AJost
如果您認爲「修復」值缺失,則基本上要求進行「最後觀察結轉」(LOCF)替換。看到這個問題的相關答案:http://stackoverflow.com/questions/2776135/last-observation-carried-forward-in-a-data-frame – MrFlick
從鏈接的答案'動物園:: na.locf(替換(DF $ x,df $ x ==「fix」,NA))' –