0

我正在尝试运行一个 for 循环,将 pdf 和文本文件都放入一个单独的文件夹中。我的代码看起来像这样。

library(MASS)
library(QuantPsyc)

rm(list=ls())

dat1<-read.csv("C:/Users/tmf/Desktop/Extract/Childsupdated_NewFiredata.csv")
stn<-unique(dat1$Station.x)
Sumdat<-as.data.frame(matrix(nrow=length(unique(stn)),ncol=18))
names(Sumdat)<-c("Lake Id","Intercept_Pvalue","Temp_Pvalue","Psum_Pvalue","PCT_Pvalue","DF","Multiple R2","Temp_VariableImp","Psum_VariableImp","Pct_VariableImp","Total_variableImp","ModelP_Value")

sink()
for (i in 1:length(stn)) {
  dat2<-dat1[dat1$Station.x==stn[i],]
  pdf(paste("C:/Users/tmf/Desktop/Extract/Outputs 17 Oct/PPT_Ha_Sum_100/",stn[i],".pdf",sep=""))
  sink(paste("C:/Users/tmf/Desktop/Extract/Outputs 17 Oct/PPT_Ha_Sum_100/",stn[i],".txt",sep=""))
  print(stn[i])
}

不幸的是,循环在最后保持打开或导致接收器堆栈完全错误,我认为这是一个小问题,但我希望有人可以帮助我修复循环错误或建议一种更简单的循环和接收方法.

谢谢,汤姆

4

1 回答 1

0

正如我所评论的,如果您只是想为每个“Station.x”输出单独的文件,那么您可以调整如下内容:

data(iris)
lapply(split(iris, iris$Species), 
function(x) write.table(x, file = sprintf('%s.txt', unique(x$Species))))
于 2014-10-21T19:02:20.850 回答