有條件填充丟失的數據我有一個數據幀,使得:中的R
df$v1 = c('2', '', '', '', '3', '', '4', '', '', 'OT')
我想這個可變格式化爲一個序變量。然而,
df$v1 = as.ordered(df$v1)
結果:
Ord.factor w/ 5 levels ""<"2"<"3"<"4"<..: 2 1 1 1 3 1 4 1 1 5
[R讀取空單元格作爲唯一的條目,並在排序第一把它們。我想要做的是用空白單元格填充它上面的最後一個單元格的值(或者根據您的方向將其左側的值)填充以獲得值。換句話說,這個矢量實際上應該是這樣的:
df$v1 = c('2', '2', '2', '2', '3', '3', '4', '4', '4', 'OT')
我相信這種變化將允許我根據需要,可變格式爲序。我已經嘗試了as.ordered(),as.factor(),levels = c('1','2','3','4','OT')和ordered = TRUE的每個組合。但是,R包含時不會使用「levels」或「ordered」參數; as.factor()函數在不使用「levels」或「ordered」參數的情況下不會導致序號變量;並且,as.ordered()函數會導致上述問題。因此,我相信在轉換之前填充空單元是最好的解決方案。什麼是最好的方法來做到這一點?我知道我可以使用:
df$v1 = as.ordered(sub('^$', '2', df$v1))
用「2」填充空單元;但是,每個單元的替換值不同。我可以這樣做:
df.a = df[1:4, ]
df.b = df[5:6, ]
df.c = df[7:9, ]
df.d = df[10, ]
df.a$v1 = as.ordered(sub('^$', '2', df.a$v1))
df.b$v1 = as.ordered(sub('^$', '3', df.b$v1))
df.c$v1 = as.ordered(sub('^$', '4', df.c$v1))
但是,我正在尋找一種方法來自動執行它。雖然上面的7行會產生我想在這種情況下的結果,但我還有許多其他表受到相同格式問題的困擾;並且與每個必需分區對應的行數對於每個分區是不同的。非常感謝您的幫助。