首页 > 解决方案 > 如何在 dplyr 中使用 mutate 动态修改变量?

问题描述

我希望动态选择变量并在 tibble 数据框中修改它们。我复制了一个示例问题。有人可以帮忙吗。谢谢

df <- tibble(
x = c(1, 2, 3),
y = c(4, 5, 6),
z = c(6, 7, 8))

variables = c("x", "y")

for (var in variables)
{
   df <- df %>% mutate(var = var + 1)
}

标签: rtidyversedplyr

解决方案


我们可以mutate使用across

library(dplyr)
df %>% 
   mutate(across(all_of(variables), ~ . + 1))

-输出

# A tibble: 3 x 3
#      x     y     z
#  <dbl> <dbl> <dbl>
#1     2     5     6
#2     3     6     7
#3     4     7     8

数据

df <- tibble(
  x = c(1, 2, 3),
  y = c(4, 5, 6),
  z = c(6, 7, 8))
variables = c("x", "y")

推荐阅读