R 为什么赢了';包含load()命令的附加代码是否有效?

R 为什么赢了';包含load()命令的附加代码是否有效?,r,R,下面的R代码具有一个包含load()命令的函数。运行时,它报告已加载保存的对象,但该对象未显示在内存中。不过,我可以让load()自行工作 # FUNCTION TO LOAD DATA loaddat <- function(name) load( paste( paste(getwd(), name, sep = '/'), 'RData', sep = '.' ), verbose = T ) # CREATE OBJECT tmp <- r

下面的R代码具有一个包含load()命令的函数。运行时,它报告已加载保存的对象,但该对象未显示在内存中。不过,我可以让load()自行工作

# FUNCTION TO LOAD DATA
loaddat <- function(name) load(
  paste(
    paste(getwd(), name, sep = '/'),
   'RData', 
   sep = '.'
  ),
  verbose = T
)

# CREATE OBJECT
tmp <- rnorm(16)
# IN MEMORY
tmp
# SAVE OBJECT
save(tmp, file = 'tmp.RData')
# REMOVE OBJECT
rm('tmp')
# IT'S GONE
tmp

# USE MY FUNCTION, WHICH REPORTS THE OBJECT (RE)LOADED
loaddat('tmp')
# STILL GONE???
tmp

# USE THE load() FUNCTION
load('tmp.RData', verbose = T)
# (RE)LOADED
tmp

# END
加载数据的函数
loaddat它被加载到函数环境中。添加一个print语句以查看此

loaddat <- function(name)  { 
  load( paste( paste(getwd(), name, sep = '/'), 'RData',  sep = '.'),
        verbose = TRUE)
  print(tmp)     
}
#Loading objects:
#  tmp
# [1] -1.2805219 -0.9895767 -0.6260367  3.0704998  1.4226676  2.3014122 -1.6997775  0.1187497
# [9]  0.3759539 -0.4102017  0.7820136 -0.5003354  1.4624261 -0.9128516 -0.6852421 -0.9394023

谢谢…我想是时候了解一下环境了!
loaddat <- function(name)  { 
  load( paste( paste(getwd(), name, sep = '/'), 'RData',  sep = '.'),
        verbose = TRUE, env=.GlobalEnv)   
}