如何在R脚本之间传递值

时间:2016-11-19 23:38:02

标签: r

我有一个R脚本,它采用xls电子表格,清理它然后进行一些分析。

源电子表格的变化和分析一样,但清理总是一样的,所以我想在我编写的任何新脚本中执行以下操作 1.阅读xls文件 2.将要清理的xls文件发送到清理脚本中的数据框中 3.将清理后的数据帧发送回原始脚本以进行进一步分析

我知道我可以从清理脚本中获取数据帧并使用source来使用它。我不明白的是如何将原始文件发送到清理脚本:

    #How do I make sure that the file I want to be cleaned up is sent to the CleanUP script below
    df<-as.data.frame(source("/Users/sebastianzeki/CleanUp.R"))
    #Further analysis then performed on df

我是否必须通过命令行参数执行此操作并将文件作为参数发送。如果是,我如何在接收CleanUp.R

中指定文件

这是CleanUp.R脚本

library(ggplot2)
library(gtools)
library(openxlsx)

MyData<-read.xlsx("/Users/sebastianzeki/Reports.xlsx", sheet = 1, startRow = 1, colNames = TRUE)
MyData$Dx<-gsub("[Nn]o .*?\n","",MyData$Dx)
MyData$Dx<-gsub("[Nn]ormal.*\n","",MyData$Dx)

1 个答案:

答案 0 :(得分:1)

您可以轻松将其转换为函数:

cleanUp <- function( file ) {
    library(openxlsx) 
    MyData<-read.xlsx(file, sheet = 1, startRow = 1, colNames = TRUE) 
    MyData$Dx<-gsub("[Nn]o .*?\n","",MyData$Dx) 
    MyData$Dx<-gsub("[Nn]ormal.*\n","",MyData$Dx)
    return(MyData)
}

在您的脚本中(或将其构建到一个包中并加载包)然后运行:

df <- cleanUp( "/Users/sebastianzeki/Reports.xlsx" )

编辑:我相信你不应该在函数中使用ggplot2gtools,所以我删除了它们。如果你确实需要它们,请把它们放回去。