我有這個結構的數據集:最後一次觀察結轉條件上多列
ID = c(1,1,1,1,2,2,2,3,3,3,3)
L40 = c(1, NA, NA, NA, 1, NA, NA, NA, 1, NA, NA)
K50 = c(NA, NA, NA, NA, NA, 1, NA, NA, NA, NA, 1)
df = data.frame(ID, L40, K50)
當缺失值出現在列L40和K50,我想在此列發揚過去的非缺失值,條件是ID與先前的ID相同,並且當前行中的L40和K50中的值爲空。我申請了下面的代碼:
library(tidyr)
df2 <- df %>% group_by(ID) %>% fill(L40:K50)
這並沒有達到我要找的。只有當該行中的其他列(ID除外)爲空時,我才希望先前的非缺失值被帶入下一行。這就是我想要的:
ID = c(1,1,1,1,2,2,2,3,3,3,3)
L40 = c(1, 1, 1, 1, 1, NA, NA, NA, 1, 1, NA)
K50 = c(NA, NA, NA, NA, NA, 1, 1, NA, NA, NA, 1)
df3 = data.frame(ID, L40, K50)
不,這產生了我想要避免的完全相同的結果。我不希望第5排的L40的價值進入第6排。 – udden2903
@ udden2903 id 2與id 3有什麼不同?如ID = 2,ID爲 – akrun
ID 2。對此感到抱歉。 – udden2903