使用 "paste" 在 r 中生成函数

Use "paste" to generate function in r

我打算用paste生成公式,但我只知道前半部分怎么做。上半场是Surv(age, group)~x;但我如何添加后半部分,使最终产品成为 Surv(age, group)~x + strata(factor(gender), bmi)?

这是我目前拥有的,但它不起作用...

tmpfun <- function(x) as.formula(c(paste("Surv(age, group)", x , sep="~"), paste0("+ strata(factor(gender), bmi)")))

你快到了。我刚刚更改了 paste0 位置。

tmpfun <- function(x) as.formula(paste0(paste("Surv(age, group)", x , sep="~"), "+ strata(factor(gender), bmi)"))

您可以将超过 2 个参数传递给 paste

tmpfun <- function(x) {
    as.formula(
        paste("Surv(age, group) ~", x, "+ strata(factor(gender), bmi)")
    )
}

尽管 sprintf 可能更简洁一些。

tmpfun <- function(x) {
    as.formula(
        sprintf("Surv(age, group) ~ %s + strata(factor(gender), bmi)", x)
    )
}