【问题标题】:Passing variables to do assignments inside function传递变量以在函数内部进行赋值
【发布时间】:2023-04-05 06:18:01
【问题描述】:

我有几个数据表具有相同的变量,需要大量的数据整理。我想创建一个函数,但我很难传递变量名,它显示在:= 分配的两侧。

查看带有mtcars 的MWE,其中要更改的变量是wt。我试过substituteeval 但无济于事。

如何使下面的代码工作?什么不见​​了?为什么这个不起作用?

DTmtcars <- data.table(mtcars)

wt_correction <- function(.df = NULL, .wt_var = NULL){
  .df[cyl==4, .wt_var := .wt_var*2]
  .df[cyl==6, .wt_var := .wt_var*3]
  .df[cyl==8, .wt_var := .wt_var*0.5]
  return(.df)
}

wt_correction(.df = DTmtcars, .wt_var= "wt")

【问题讨论】:

    标签: r function data.table


    【解决方案1】:

    从各种 SO 答案的汇编中,以下似乎对我有用:

    wt_correction <- function(.df = NULL, .wt_var = NULL){
      .df[cyl==4, (.wt_var) := get(.wt_var)*2]
      .df[cyl==6, (.wt_var) := get(.wt_var)*3]
      .df[cyl==8, (.wt_var) := get(.wt_var)*0.5]
      return(.df)
    }
    

    Source 1 (Matt Dowle's answer)

    Source 2

    【讨论】:

      猜你喜欢
      • 2023-03-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-14
      • 1970-01-01
      • 2018-07-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多