我有一张带有动作列表的表:
name person timestamp open_count
Opened A 2019-07-01 00:00:34 1
Action A 2019-07-01 00:00:34
Action A 2019-07-01 00:00:34
Opened A 2019-07-02 00:00:34 2
Action A 2019-07-01 00:00:34
Action A 2019-07-01 00:00:34
Opened A 2019-07-08 00:00:34 3
Action A 2019-07-01 00:00:34
Action A 2019-07-01 00:00:34
Action A 2019-07-01 00:00:34
Opened A 2019-07-11 00:00:34 4
我想将open_count
的值填写到该列中的最后一个非空值。我的目标是创建一个会话,以便我可以查看用户每次执行打开操作时的操作数量。
如何填写最后一个非空值?您可以想象时间戳按升序排列。
答案 0 :(得分:2)
假设空白为""
df1[tail(which(colSums(df1 != "") == nrow(df1)), 1)]
或者如果是NA
df1[tail(which(colSums(!is.na(df1)) == nrow(df1)), 1)]
如果我们需要fill
'open_count'
library(dplyr)
library(tidyr)
df1 %>%
mutate(open_count = na_if(open_count, "")) %>%
fill(open_count)