我正在尝试使用 R dplyr 根据条件创建多个变量。我必须将相同的条件写三次才能完成这项工作,但我猜测有一种有效的方法可以通过一次编写条件并使用该条件创建多个变量来完成此任务。我尝试这样做的原因是,如果条件发生变化,在一个位置更新条件会比更新三次更容易。请帮忙。
例子:
当前解决方案:
library(dplyr)
x = c(12,8,3)
df<-data.frame(x)
y<- df %>% mutate( a = ifelse(x>10 ,1,
ifelse(x>5 ,11,0)),
b = ifelse(x>10 ,2,
ifelse(x>5 ,12,0)),
c = ifelse(x>10 ,3,
ifelse(x>5 ,13,0))
)
寻找这样的东西:
if x>10 then
{a=1 b=2 c=3}
else if x>5 then
{a=11 b=12 c=13}
else
{a=0 b=0 c=0}
最佳答案
定义一个函数并使用它三次:
cond <- function(x, x1, x2)
case_when(
x > 10 ~ x1,
x > 5 ~ x2,
TRUE ~ 0)
df %>% mutate(a = cond(x, 1, 11), b = cond(x, 2, 12), c = cond(x, 3, 13))
关于r - 有条件地创建多个变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48105079/