我正在尝试在 R 中编写一个函数,该函数从数据框中删除列并返回新数据,其名称指定为函数的参数:
drop <- function(my.data,col,new.data) {
new.data <<- my.data[,-col]
return(new.data)
}
因此,在上面的示例中,我希望在调用函数后存在一个新的数据框,该数据框的名称为用户输入的第三个参数的名称。
当我调用该函数时,会返回正确的数据帧,但是如果我尝试在全局环境中使用新的数据帧,我会得到object not found
。我想通过使用<<-
我定义的运算符new.data
全球。
有人可以帮助我了解发生了什么事以及是否有办法实现这一目标?
I found this https://stackoverflow.com/questions/10904124/global-and-local-variables-in-r and this https://stackoverflow.com/questions/6330468/how-can-i-define-a-global-variable-text-in-r这似乎相关,但都没有完全回答我的问题。
Use the assign()
功能。
assign("new.data", my.data[,-col], envir = .GlobalEnv)
第一个参数应该是一个字符串。在这种情况下,生成的全局变量将被命名为“new.data”。如果new.data
是名称本身,删除函数调用中的引号。
<<-
并不总是分配给全局环境。
然而,一般来说,从函数返回内容比从函数内部设置全局变量更好。后者调试起来要困难得多。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)