d********p 发帖数: 31 | 1 哪位给启蒙一下,在这个assign里, pos = -1是什么意思?pos可能的值是什么?比如
pos = 1, 2 又是什么意思?
assign(x, value, pos = -1, envir = as.environment(pos), inherits = FALSE,
immediate = TRUE) | t****a 发帖数: 1212 | 2 很有趣的问题。稍微搜索尝试了一下
assign这个函数用来动态生成变量,pos用于指名这个变量应该生成在哪一个
environment中,参见as.environment。默认值-1表示生成在当前函数里(局部变量)
。取值1表示生成全局变量。
比如:
x=function() {assign('b',1,pos=-1); print(b)}; x() # 在x函数中动态生成局部变
量b,函数退出则b消失
x=function() {assign('b',1,pos=1); print(b)}; x() # 在x函数中动态生成全局变
量b,函数退出b仍然存在 | d********p 发帖数: 31 | 3 对的。好像pos和envir是redundant arguments。
x=function() {assign('c',1); print(c)}; x()
get('c') # error
x=function() {assign('c',1, envir=.GlobalEnv); print(c)}; x()
get('c')
【在 t****a 的大作中提到】 : 很有趣的问题。稍微搜索尝试了一下 : assign这个函数用来动态生成变量,pos用于指名这个变量应该生成在哪一个 : environment中,参见as.environment。默认值-1表示生成在当前函数里(局部变量) : 。取值1表示生成全局变量。 : 比如: : x=function() {assign('b',1,pos=-1); print(b)}; x() # 在x函数中动态生成局部变 : 量b,函数退出则b消失 : x=function() {assign('b',1,pos=1); print(b)}; x() # 在x函数中动态生成全局变 : 量b,函数退出b仍然存在
|
|