Попробуйте написать функцию-обертку, которая вызывает ваши подфункции внутри.Затем передайте функции имена переменных через список, используя одну из функций apply () (tapply, sapply и т. Д.) В соответствии с вашими потребностями
MyWrapperFunction <- function( infile) {
a <- read.csv(file = infile)
a1 <- subset(a, inout==2, select=c(A,C,D))
f.sum <- function(a1f) sum(a1f$D)
atd <- ddply(a1, .(a1$C), f.sum)
colnames(atd)[2] <- "td"
f.nrow <- function(a1f) nrow(a1f)
aC <- ddply(a1,.(a1$C), f.nrow)
colnames(aC)[2] <- "number"
a_A <- merge(atd, aC, by="a1$C")
myplot <- plot(a_A$number, a_A$td) # the result I need
# save as your desired image file, png, pdf, etc...
# e.g. pdf( myplot, file = paste( infile, "_plot.pdf, sep = "") )
# the result I need
write.csv(a_A,
file = paste( infile, "_output.csv, sep = ""),
row.names=FALSE) }
И заимствуя некоторый код из nzcoops:
setwd("/my_docs/my_project_data/") # where all your data files are
my.files <- list.files()
setwd("/my_docs/my_project_graphs/") # somewhere to save your graphs
apply( my.files, MyWrapperFunction)
Вот способ начать работу с универсальной функцией для вашей проблемы поднабора
anotherWrapperFunction <- function( data, subset.critera,...)
где ... другие вещи, которые вы хотите передать функции
data.subset <- subset( data, aserno == subset.critera, #etc...)
data.subset.subset <- subset( data.subset, #etc...)
Кстати, я не уверен, почему вы делаете это в два поднабора шагов, вы можете сделать это все в одном вызове через &
f <- function(sevenoutf) nrow(sevenoutf)
Также вам не нужно это какфункция f <- nrow(sevenoutf)
выполняет то же самое
data.subset.subset.ddply <- ddply( data.subset.subset, #etc...)
colnames(data.subset.subset.ddply)[2] <- "N"
и т. д.,
теперь выписываете графики и CSV-файл, как и раньше
# save as your desired image file, png, pdf, etc...
# using the subset criteria in the file name so you can ID the plot
# e.g. pdf( myplot, file = paste( "subset", subset.critera, "_plot.pdf, sep = "") )
и выполняетето же самое с write.csv, как я показал вам выше
Удачи