首页 > 解决方案 > 从循环输出数据时遇到错误

问题描述

我有一个似乎主要工作的循环代码,但是当我尝试将结果输出到 csv 文件中时,我收到以下错误,文件中的错误(文件,ifelse(追加,“a”,“w”)) :无效的“开放”论点。

我已经编写了一个循环的代码(以前曾工作过),该循环从文件夹中获取数据集,执行计算并将这些计算放入新列中,然后将该数据集与新列一起输出到不同的文件夹中。但是,R 在尝试将输出放入循环结束时的新文件夹时遇到问题,给我以下错误,文件中的错误(文件,ifelse(追加,“a”,“w”)):无效“开放”的论点。

setwd("/Users/Desktop/Snail/CSVs/CSV 2")


files = list.files()

summary = NULL

for (f in files) {
  data = read.csv(f, sep = ',',header=T)
  data2<-prepData(data,type="UTM",coordNames=c("x","y"))
  sub = cbind(f,data2)
  summary = rbind(summary,sub)
  myfile = file.path("/Users/Desktop/CSV 3",".csv")
  write.table(summary[[f]], file=myfile , paste(names(summary)[f],".csv",sep=","))
}

我希望在新文件夹中获得一个包含新计算的文件。

标签: r

解决方案


您的调用write.table是明确地将我认为应该是您的文件名的内容传递给append=参数。尝试这个:

for (f in files) {
  data = read.csv(f, sep = ',',header=T)
  data2<-prepData(data,type="UTM",coordNames=c("x","y"))
  sub = cbind(f,data2)
  summary = rbind(summary,sub)
  myfile = file.path("/Users/Desktop/CSV 3", paste(names(summary)[f],".csv",sep=","))
  write.table(summary[[f]], file=myfile)
}

推荐阅读