如何在dplyr中使用mutate动态修改变量?
我希望动态选择变量并在tibble数据帧中修改它们。我复制了一个示例问题。有人能帮忙吗。 谢谢 试试这个。你可以用!!从rlang和dplyr的sym使用运算符进行所需的计算:=。代码如下:如何在dplyr中使用mutate动态修改变量?,r,dplyr,tidyverse,mutate,R,Dplyr,Tidyverse,Mutate,我希望动态选择变量并在tibble数据帧中修改它们。我复制了一个示例问题。有人能帮忙吗。 谢谢 试试这个。你可以用!!从rlang和dplyr的sym使用运算符进行所需的计算:=。代码如下: library(dplyr) #Data and code df <- tibble( x = c(1, 2, 3), y = c(4, 5, 6), z = c(6, 7, 8)) variables = c("x", "y") for (va
library(dplyr)
#Data and code
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)
{
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
试试这个。你可以用!!从rlang和dplyr的sym使用运算符进行所需的计算:=。代码如下:
library(dplyr)
#Data and code
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)
{
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
我们可以使用mutate和cross
-输出
# A tibble: 3 x 3
# x y z
# <dbl> <dbl> <dbl>
#1 2 5 6
#2 3 6 7
#3 4 7 8
数据
我们可以使用mutate和cross
-输出
# A tibble: 3 x 3
# x y z
# <dbl> <dbl> <dbl>
#1 2 5 6
#2 3 6 7
#3 4 7 8
数据
您好@akrun,如果我们想将更新添加为新列,而不是覆盖现有列,您需要如何修改mutate语句?仍在试图找出如何使用mutate and oss代替mutate_at来创建新列。啊哈,找到了'df%>%mutateacrossall_of variables,listtest=~。+1'@RussThomas您可以使用.names={col}\u在acrossHi@akrun中测试,如果我们想将更新添加为新列而不是覆盖现有列,您需要如何修改mutate语句?仍在试图找出如何使用mutate and oss代替mutate_at来创建新列。啊哈,找到了'df%>%mutateacrossall_of variables,listtest=~。+1'@RussThomas您可以使用。name={col}\u测试