首页 > 解决方案 > 如何将函数转换为管道友好的函数?

问题描述

我正在尝试将以下函数转换为对管道友好的函数。但它是由字符串组成的。我不知道从哪里开始。

library(MplusAutomation)

pathmodel <- mplusObject(
   TITLE = "MplusAutomation Example - Path Model;",
   MODEL = "
     mpg ON hp;
     wt by disp drat;",
   OUTPUT = "CINTERVAL;",
   rdata = mtcars)

我已经尝试过这种格式,但我不确定哪种格式不起作用,我不确定如何创建它以便它与管道一起使用。

mplus <- function(data, title, on, by, output) {
  mplusObject(TITLE = as.character(title),
              MODEL = paste(on, "/n", by),
              OUTPUT = as.character(output),
              rdata = data)
  
}

这就是我最终要达到的目标。

mplus %>%
  data(mtcars) %>%
  title("example - path model") %>%
  predictors("mpg on hp") %>%
  latentvars("wt by disp drat") %>%
  output(cinterval)

标签: rtidyversemagrittr

解决方案


这就是你可以做的让这个函数动态的:

mplus <- function(data, title, on, by, output) {
  mplusObject(TITLE = title,
              MODEL = paste(on, "/n", by),
              OUTPUT = output,
              rdata = data)
}

然后将其称为:

mtcars %>%
  mplus("example - path model", "mpg on hp", "wt by disp drat", "CINTERVAL")

推荐阅读