代码中有几个问题:
- 您的
any
应该包括条件(即any(... > 2)
)
- 您没有在
mutate
中使用cars_nest
变量,这是DataFrame对象的名称,而不是列(它应该是data
列)
- 做这种手术需要
rowwise
英镑.
其中一个建议是:
- 由于逻辑比较(
... > 2
)的输出已经是逻辑的,您可以利用as.integer
将其关联为整数,而不使用ifelse
因此,代码应该是:
library(tidyverse)
cars_nest <- mtcars %>%
group_by(cyl) %>%
nest()
cars_nest %>%
rowwise() %>%
mutate(test = as.integer(any(data$carb > 2)))
# or mutate(test = ifelse(any(data$carb > 2), 1, 0))
# A tibble: 3 × 3
# Rowwise: cyl
cyl data test
<dbl> <list> <dbl>
1 6 <tibble [7 × 10]> 1
2 4 <tibble [11 × 10]> 0
3 8 <tibble [14 × 10]> 1