下面是一个示例代码,用于按组创建对于FALSE和NA的TRUE连续出现的计数器:
# 创建一个数据框
df <- data.frame(group = c(1, 1, 1, 2, 2, 2, 3, 3, 3),
value = c(TRUE, TRUE, FALSE, NA, TRUE, FALSE, NA, TRUE, TRUE))
# 添加一个新的列作为计数器
df$count <- NA
# 按组进行循环
for (g in unique(df$group)) {
# 获取每个组的索引
group_indices <- which(df$group == g)
# 循环遍历每个索引
for (i in group_indices) {
# 检查当前值是否为TRUE
if (isTRUE(df$value[i])) {
# 如果前一个值为FALSE或NA,则设置计数器为1
if (i == 1 || !isTRUE(df$value[i - 1])) {
df$count[i] <- 1
} else {
# 如果前一个值为TRUE,则将计数器加1
df$count[i] <- df$count[i - 1] + 1
}
} else {
# 如果当前值为FALSE或NA,则设置计数器为0
df$count[i] <- 0
}
}
}
# 输出结果
df
这段代码将创建一个名为count
的新列,用于存储对于FALSE和NA的TRUE连续出现的计数器。首先,我们遍历每个组并获取每个组的索引。然后,在每个索引上,我们检查当前值是否为TRUE。如果是TRUE,我们检查前一个值是否为FALSE或NA。如果是,则将计数器设置为1,否则将计数器设置为前一个值加1。如果当前值为FALSE或NA,则将计数器设置为0。最后,我们输出结果数据框。
下一篇:按组创建多个文件