下面是一个示例,说明了所需的Out,它目前提供了所有T
Eg <- tibble("A"= c("A","B", "C"),
"Number" = 1:3,
"Lists" = c(tibble(A=c(1,5)),tibble(A=1),tibble(B=2)))
Out <- Eg%>%
mutate(New= case_when(length(Lists)==2~F,
T~T))
#My desired Out would be
print(Out$New)
F T T
您可以使用lengths
:
Eg$New <- lengths(Eg$Lists) != 2
Eg
# A tibble: 3 x 4
# A Number Lists New
# <chr> <int> <named list> <lgl>
#1 A 1 <dbl [2]> FALSE
#2 B 2 <dbl [1]> TRUE
#3 C 3 <dbl [1]> TRUE
如果必须使用dplyr::case_when
:
library(dplyr)
Eg %>%
rowwise() %>%
mutate(New= case_when(length(Lists)==2~FALSE,
TRUE~TRUE))
或
Eg %>%
mutate(New= case_when(lengths(Lists)==2~FALSE,
TRUE~TRUE))