我有一個data.frame那裏我已經確定有錯誤/缺少數據的行。排名數據中的差距
我需要計數連續的缺失值。我缺少的是一個可以進行排名的功能,但是在每個差距處重新排列並隨着每個連續差距而增加。
基本上我的數據幀是這樣的:
df <- data.frame(Date = as.Date("2017-02-10") + 1:10, Missing = c(F,F,T,F,T,T,T,F,T,T))
我想這一點:
data.frame(Date = as.Date("2017-02-10") + 1:10, Missing = c(F,F,T,F,T,T,T,F,T,T),
Rank = c(0,0,1,0,1,2,3,0,1,2))
# Date Missing Rank
# 1 2017-02-11 FALSE 0
# 2 2017-02-12 FALSE 0
# 3 2017-02-13 TRUE 1
# 4 2017-02-14 FALSE 0
# 5 2017-02-15 TRUE 1
# 6 2017-02-16 TRUE 2
# 7 2017-02-17 TRUE 3
# 8 2017-02-18 FALSE 0
# 9 2017-02-19 TRUE 1
# 10 2017-02-20 TRUE 2
我熟悉dplyr
,我試圖用cummax
但不重啓次數,我不知道如何將它重置爲零:
library(dplyr)
df %>% mutate(Rank = if_else(Missing == T, cummax(Rank), 0))
我開始想知道這是否需要循環。
或者,'評級= ROW_NUMBER()的另一種方法 - 1L' – Frank
哇它永遠不會發生到我建立這樣的基團。這像一個魅力。謝謝 – sgp667