Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
t作为R中全局变量的名称:不可能?_R_Binding_Global Variables - Fatal编程技术网

t作为R中全局变量的名称:不可能?

t作为R中全局变量的名称:不可能?,r,binding,global-variables,R,Binding,Global Variables,我想使用t作为R中全局变量的名称,但它不允许我这样做 sq1=function() { t<<-7 } 如何克服这个问题?您是否尝试过首先在全局环境中重新定义t(如果您*真的需要使用这个名称,请再次说明) tt是基数R中的一个函数,用于转置矩阵。这就是它被锁定的原因 我建议您重新考虑使用全局变量。它会产生难以发现的错误,使代码更难理解。添加@hrbrmstr回答的内容,并显示一些输出 您可以通过首先在全局环境中将t定义为变量来解决此问题(但不推荐,因为t是一个基本函数),然后使

我想使用t作为R中全局变量的名称,但它不允许我这样做

sq1=function() {
  t<<-7
}

如何克服这个问题?

您是否尝试过首先在全局环境中重新定义
t
(如果您*真的需要使用这个名称,请再次说明)


t
t
是基数R中的一个函数,用于转置矩阵。这就是它被锁定的原因


我建议您重新考虑使用全局变量。它会产生难以发现的错误,使代码更难理解。

添加@hrbrmstr回答的内容,并显示一些输出


您可以通过首先在全局环境中将
t
定义为变量来解决此问题(但不推荐,因为
t
是一个基本函数),然后使用
为什么需要将变量命名为
t
t
是保留的,因为它是一个转换
矩阵
数据的函数。我希望代码完全对应于模型的变量为什么使用globals不是一个好主意?我经常听到这个,但没有人真正向r解释这个w.r.t。首先,我们都在r中使用全局变量。当启动r并从控制台开始工作时,无论何时创建新对象(函数或变量),都会影响当前的全局环境。问题是,当您试图通过
操作这些变量时,也不能保证
快速测试:我将变量
x
设置为一个值,比如
x@hrbrmstr,我为您单击了一次;)格雷格,说得通,谢谢。这是唯一的问题吗?
t
未锁定,您可以在全局环境中创建具有该名称的对象。在OPs上下文中,它被锁定,但在全局环境中直接设置
t
时,它不会被锁定。
Error in sq1() : cannot change value of locked binding for 't'
t <- 0
sq1 <- function() {
   t <<- 7
}
sq1 <- function() {
    return(7)
}
t <- sq1()
> t <- 5
> t
[1] 5
> sq1=function() {
      t<<-7   }
> sq1()
> t 
[1] 7
f <- function() .GlobalEnv$t <- 7
f()