簡體   English   中英

如何使用 R 中的 function 中的參數創建新變量名稱?

[英]How do I create new variable names using argument in my function in R?

這是一個數據集。

require(data.table) 
df <- data.table(a = c(1, 2, 3),
b = c(4, 5, 6))
   a b
1: 1 4
2: 2 5
3: 3 6

我想用我的 function 命名幾個列名。

這是一個示例 function。

 f_test <- function(x){
  
  variableName1 <- eval(paste0("variableName1_", x))
  variableName2 <- eval(paste0("variableName2_", x))
  
  print(variableName1)
  
  #setNames(variableName)
  
  df_1a <- df[, `:=` (variableName1 = a * b * 1,
                      variableName2 = a * b * 2)]
  
}

例如,這是f_test("AAA")的預期結果

   a b variableName1_AAA variableName2_AAA
1: 1 4                 4                 8
2: 2 5                10                20
3: 3 6                18                36

但是,function 結果不是“variableName1_AAA”,而是“variableName1”。

如何根據 function 中的字符串參數分配名稱? 我需要分配名稱字符以在將來的 function 工作中使用。

我們可以直接使用paste來創建列名,因為輸入是一個字符串。 分配( := )也可以通過在:=的 lhs 上連接列名對象來完成

f_test <- function(x){

  variableName1 <- paste0("variableName1_", x)
  variableName2 <- paste0("variableName2_", x)

  df_1a <- copy(df)

  df_1a[, c(variableName1, variableName2) := .( a * b * 1,
                   a * b * 2)][]
  
                 

 }

-測試

f_test("AAA")
#   a b variableName1_AAA variableName2_AAA
#1: 1 4                 4                 8
#2: 2 5                10                20
#3: 3 6                18                36

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM