例如:
df = data.frame(A=c(1,2), B=c(3,4))
df %>% group_by(A) %>% mutate(.[[2]] = .[[2]] + 1)
此代码将无法运行。
代码:
df %>% group_by(A) %>% mutate(B = .[[2]]+1)
可以运行。所以我想知道是否有办法用 col 的索引替换 'B'(在本例中,它是 2)
使用
across
:
> df |> mutate(across(2, ~ .x + 1))
A B
1 1 4
2 2 5
对于分组数据框,您需要相应地调整索引:
> df |> group_by(A) |> mutate(across(1, ~ .x + 1))
# A tibble: 2 × 2
# Groups: A [2]
A B
<dbl> <dbl>
1 1 4
2 2 5