这是一个我似乎无法弄清楚的新秀问题。假设您已经构建了一个操作一些数据帧的R脚本。您运行脚本,它会打印出结果。一切都很好。如何加载在脚本中创建的对象以便在工作区中使用?例如,假设脚本创建数据框df1。我们如何在工作区中访问它?感谢。
这是脚本...简单函数只是读取一个csv文件并计算第2列和第3列之间的差异...基本上我想访问工作空间中的spdat
mspreaddata<-function(filename){
# read csv file
rdat<-read.csv(filename,header=T,sep=",")
# compute spread value column 2-3
spdat$sp<-rdat[,2]-rdat[,3]
}
答案 0 :(得分:17)
您应该使用source
功能。
即。使用source("script.R")
编辑:
查看文档以获取更多详细信息。它将运行您调用的脚本。然后,对象将在您的工作区中。
或者,您可以使用save
保存这些对象,然后使用load
加载它们。
答案 1 :(得分:1)
因此,当您获取该函数时,您的工作区中无法使用函数mspreaddata
?因为在那里永远不会创建spdat
。您只是创建一个函数而不是运行它。该对象spdat
仅存在于该函数内,而不存在于该函数外部的任何环境中。你应该添加像
newObject <- mspreaddata("filename.csv")
然后您可以访问newObject
编辑:
在您的函数中也未创建spdat
,因此对spdat$sp<-rdat[,2]-rdat[,3]
的调用本身不正确。只需使用return(rdat[,2]-rdat[,3])
代替。