gpt4 book ai didi

r - 在 R 中使用函数参数定义全局变量

转载 作者:行者123 更新时间:2023-12-04 05:30:58 25 4
gpt4 key购买 nike

我正在尝试在 R 中编写一个函数,该函数从数据框中删除列并返回名称指定为函数参数的新数据:

drop <- function(my.data,col,new.data) {
new.data <<- my.data[,-col]
return(new.data)
}

因此,在上面的示例中,我希望在调用函数后存在一个新的数据框,该数据框的名称是用户输入的第三个参数。

当我调用该函数时,会返回正确的数据框,但是如果我尝试在全局环境中使用新的数据框,我会得到 object not found .我想通过使用 <<-我定义的运算符 new.data全局。

有人可以帮助我了解发生了什么以及是否有办法做到这一点?

我找到了 thisthis这似乎相关,但都没有完全回答我的问题。

最佳答案

使用 assign()功能。

  assign("new.data", my.data[,-col], envir = .GlobalEnv) 

第一个参数应该是一个字符串。在这种情况下,生成的全局变量将被命名为“new.data”。如 new.data是名称本身,从函数调用中删除引号。
<<-并不总是分配给全局环境。

然而,一般来说,从函数返回东西比从函数内部设置全局变量要好。后者更难调试。

关于r - 在 R 中使用函数参数定义全局变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22412620/

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