【发布时间】:2022-12-20 01:45:14
【问题描述】:
我想在 dplyr 工作流程中添加一个新变量并根据条件定义变量名称。有很多关于使用 ifelse() 进行条件变异的讨论,讨论的是如何定义给定变量的值,但没有讨论如何有条件地定义名称。
就像是:
Test <- 'A'
Test_results <- c(1.1, 33, 343, 2.22, 2.4)
##
iris<- iris%>%
dplyr::mutate(
ifelse(Test=='A',
Test_A=Test_results,
ifelse(Test=='B',
Test_B=Test_results,
no_Test='no_results')) )
期望的输出(假定 Test <- 'A')是:
> iris
Sepal.Length Sepal.Width Petal.Length Petal.Width Species Test_A
1 5.1 3.5 1.4 0.2 setosa 1.1
2 4.9 3.0 1.4 0.2 setosa 33
3 4.7 3.2 1.3 0.2 setosa 343
4 4.6 3.1 1.5 0.2 setosa 2.22
5 5.0 3.6 1.4 0.2 setosa 2.4
...
如果Test <- 'B',结果应该是:
> iris
Sepal.Length Sepal.Width Petal.Length Petal.Width Species Test_B
1 5.1 3.5 1.4 0.2 setosa 1.1
2 4.9 3.0 1.4 0.2 setosa 33
3 4.7 3.2 1.3 0.2 setosa 343
4 4.6 3.1 1.5 0.2 setosa 2.22
5 5.0 3.6 1.4 0.2 setosa 2.4
...
变量“测试”在用户驾驶舱的某处定义,并对多个嵌套脚本产生影响(因此请不要硬编码)。
【问题讨论】:
标签: if-statement variables dplyr conditional-statements mutate