假设我有以下功能
get_answer <- function(condition, dp, rp){
if(condition == "DD"){
result <- rbinom(n = 2, size = 1, prob = dp)
}
if(condition %in% c("DR", "RD")){
result <- c(rbinom(n = 1, size = 1, prob = dp),
rbinom(n = 1, size = 1, prob = rp))
}
if(condition == "RR"){
result <- rbinom(n = 2, size = 1, prob = rp)
}
return(result)
}
我创建一个 data.frame 像这样:
results_df <- data.frame(condition = c(rep("DD", 10000), rep("DR", 10000), rep("RR", 10000)))
我希望能够获得从返回的向量get_answer
,对于列中的条件condition
,并将返回的值分成两列——第一个值进入列P1
第二个进入专栏P2
.
像这样的东西:
results_df %>% mutate(p1 = get_answer(condition, .6, .4)[0], p2 = get_answer(condition, .6, .4)[1])
在 dplyr 中执行此操作的正确方法是什么?