如何解决如何在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)
}
解决方法
我们可以将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")
,
尝试一下。您可以使用!!
中的rlang
和sym()
中的dplyr
来使用运算符:=
进行所需的评估。这里的代码:
library(dplyr)
#Data and code
df <- tibble(
x = c(1,8))
variables = c("x","y")
for (var in variables)
{
var <- sym(var)
df <- df %>% mutate(!!var := !!var + 1)
}
输出:
# A tibble: 3 x 3
x y z
<dbl> <dbl> <dbl>
1 2 5 6
2 3 6 7
3 4 7 8
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。