我有一个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)
答案 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" )
编辑:我相信你不应该在函数中使用ggplot2
或gtools
,所以我删除了它们。如果你确实需要它们,请把它们放回去。