更新
您也可以根据需要使用以下代码。我知道已经提出了一个非常好的解决方案,但是,我不想让我的解决方案未完成:
library(dplyr)
library(purrr)
# First I created a data frame of logical values
logical_vector <- c("TRUE", "TRUE", "TRUE", "FALSE", "TRUE", "FALSE", "TRUE", "TRUE", "TRUE", "TRUE")
logical_vector2 <- c("TRUE", "TRUE", "TRUE", "TRUE", "TRUE", "FALSE", "TRUE", "TRUE", "TRUE", "TRUE")
logical_vector3 <- c("TRUE", "TRUE", "FALSE", "FALSE", "TRUE", "FALSE", "TRUE", "FALSE", "TRUE", "TRUE")
logical_vector4 <- c("FALSE", "FALSE", "TRUE", "FALSE", "TRUE", "FALSE", "TRUE", "TRUE", "TRUE", "TRUE")
df <- data.frame(logical_vector,
logical_vector2,
logical_vector3,
logical_vector4)
df %>%
mutate(across(everything(), as.logical)) -> df
# Then I apply `rle` function on every column of it and count the runs of TRUEs among them and finally keep the elements with runs of TRUEs more than 4
map(df, rle) %>%
map(~ .x$lengths[.x$values]) %>%
keep(~ max(.x) > 4) -> df1
names(df1)
[1] "logical_vector2"