关于如何创建函数并在 R 中循环它,我有一个非常基本的问题。鉴于我的数据:
#create a test df
a<-c(1,2,3,4,5,6,7)
b<-c(1,2,4,4,5,6,7)
c<-c(1,7,1,7,2,5,4)
d<-c(1,7,1,7,2,5,4)
df.abcd<-data.frame(a,b,c,d)
我想自动创建箱线图并保存它们的输出。它像这样工作正常:
# Create Boxplots from all columns
for (x in 1:length(df.abcd)) {
windows()#opens a graphics window - necesarry for the plots
boxplot(df.abcd[,x],
main=names(df.abcd)[x])#writes colnames as title
savePlot(filename=paste("E:\\R\\2_outputs\\boxplot_,deparse(x)), type="tiff")
dev.off()#disables the graphics window
}
现在我想让我的过程成为一个函数,这样我就可以将它应用到多个数据帧上,而无需重复我的代码。我想到了类似的东西:
#make the above a function and apply it
test.function<-function(y){
for (x in 1:length(y)){
windows()
boxplot(y[,x],
main=names(y)[x])
savePlot(filename=paste("E:\\R\\2_outputs\\boxplot_,deparse(x)), type="tiff")
dev.off()
}}
test.function(df.abcd)
所以最后这个函数起作用了,但它不再循环了。只有我的数据框的第一列被创建为输出。我究竟做错了什么?