gpt4 book ai didi

r - 如何在 R 的函数中使用参数创建新的变量名?

转载 作者:行者123 更新时间:2023-12-04 07:44:41 29 4
gpt4 key购买 nike

这是一个数据集。

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
我想用我的函数创建几个列名。
这是一个示例函数。
 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
然而,函数结果不是'variableName1_AAA',而是'variableName1'。
如何根据函数中的字符串参数分配名称?我需要分配名称字符以在以后的功能工作中使用。

最佳答案

我们可以使用 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

关于r - 如何在 R 的函数中使用参数创建新的变量名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67258836/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com