首页 > 解决方案 > R不记得写在函数中的对象

问题描述

我正在努力清楚地解释这个问题。

从本质上讲,R 环境中似乎发生了一些事情,我在函数中编写的代码都没有工作,也没有保存数据。如果我直接在控制台中键入命令行,它可以工作(即 Monkey <- 0),但如果我在函数中键入它,它不会在我运行该函数时存储它。

可能是我在代码中遗漏了一个明显的错误,但是当我不小心单击调试器并试图从出现的浏览器 [1] 提示中激发出来时,我注意到了这个问题。

有任何想法吗?这让我发疯了。

  corr <- function(directory, threshold=0) {
  directory <- paste(getwd(),"/",directory,"/",sep="")
  file.list <- list.files(directory)
  number <- 1:length(file.list)
  monkey <- c()
  
  for (i in number) {
    x <- paste(directory,file.list[i],sep="")
    y <- read.csv(x)
    t <- sum(complete.cases(y))
    if (t >= threshold) {
      correl <- cor(y$sulfate, y$nitrate, use='pairwise.complete.obs')
      monkey <- append(monkey,correl)}
  }
  #correl <- cor(newdata$sulfate, newdata$nitrate, use='pairwise.complete.obs')
  #summary(correl)
}
corr('specdata', 150)
monkey```

标签: r

解决方案


这是一个命名空间问题。函数创建自己的“环境”,不一定在全局环境中。

使用<-将在本地环境中分配。要将对象保存到全局环境,请使用<<-

这是有关 R 环境的一些信息。


推荐阅读