这是一个类似于更大数据集的示例数据框:
Day <- c(1, 2, NA, 3, 4, NA, NA, NA, NA, NA, 1, 2, 3, NA, NA, NA, NA, 1, 2, NA, NA, 3, 4, 5)
y <- rpois(length(Day), 2)
z <- seq(1:length(Day)) + 500
df <- data.frame(z, Day, y)
Run Code Online (Sandbox Code Playgroud)
如果Day列中存在4个或更多缺失值(NAs)的序列,则该序列表示研究中的群组之间的差距.如果序列中少于4个NA,则缺失值仍被视为群组的一部分(例如,行3是群组1的一部分,但行8不是).在样本数据框中,有3个群组(群组1:行1-5,群组2:行11-13,群组3:行18-24).我想添加一个列出队列号的列和另一个列出队列研究日的列.这是我使用的代码:
require(dplyr)
CheckNA <- rle(is.na(df$Day))
CheckNA$values <- CheckNA$lengths >= 4 & CheckNA$values == 1
ListNA <- rep(CheckNA$values, CheckNA$lengths)
df$Co <- rep(c(1, NA, 2, NA, 3), rle(ListNA)$lengths) %>% as.factor()
df <- df %>%
group_by (Co) %>%
mutate(CoDay = seq(Co)) %>% …Run Code Online (Sandbox Code Playgroud)