脚本完成后,通过read.csv创建的对象将消失

脚本完成后,通过read.csv创建的对象将消失,r,rstudio,R,Rstudio,我不是程序员,有不到一个月的R经验,但在过去的一周里一直在编写从外部CSV文件读取的简单脚本。下面的函数(从CSV文件读取数据)最初比较复杂,但我在故障排除过程中反复缩短了它,直到我完成以下操作: newfunction <- function(input1, input2) { processingobject <- read.csv("processing-file.csv") print(head(processingobject)) } newfunction您需要

我不是程序员,有不到一个月的R经验,但在过去的一周里一直在编写从外部CSV文件读取的简单脚本。下面的函数(从CSV文件读取数据)最初比较复杂,但我在故障排除过程中反复缩短了它,直到我完成以下操作:

newfunction <- function(input1, input2) {
  processingobject <- read.csv("processing-file.csv")
  print(head(processingobject))
}

newfunction您需要在函数中使用
return
,可复制的示例始终是一个好主意。它使人们更容易帮助你

ncol<- 10
nrow<- 100
x <- matrix(runif(nrow*ncol),nrow,ncol)
write.csv(x,file="example_data.csv")

newfunction <- function(input1) {
  processingobject <- read.csv("example_data.csv")
  result <- apply(processingobject,2,function(x)x*input1) #doing something to csv with input
  print(head(result))
  return(result)
}

newcsv <-newfunction(3)

n感谢您的回复。添加额外的“返回(结果)”行后,问题仍然存在。唯一的变化是,现在在我运行函数之后,它返回NULL,但仍然找不到对象。如何使我的示例更具可复制性?我是否需要包含实际的CSV文件或其他信息?请查看此帖子:并编辑您的帖子,以便我们可以看到发生了什么。在csv中读取时可能有问题?没错:
processingobject
不再存在。它是一个本地对象,退出函数后,它将被垃圾收集。值将持续存在的唯一对象是通过以下三种机制之一分配给全局环境中某个名称的对象:1)将最后一次评估分配给全局环境中的某个令牌,如下面的答案中针对newcsv令牌所示;2)将最后一次评估分配给具有