![](/img/trans.png)
[英]Without splitting my data, how can i create a new categorical variable using function in R
[英]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.