【发布时间】:2019-08-29 21:47:48
【问题描述】:
我有一个似乎大部分都可以工作的循环代码,但是当我尝试将结果输出到 csv 文件时,我收到以下错误,文件中的错误(文件,ifelse(追加,“a”,“w ")) : 无效的 'open' 参数。
我已经编写了一个循环代码(以前曾使用过),该循环从文件夹中获取数据集,执行计算并将这些计算放入新列中,然后将该数据集与新列一起输出到不同的文件夹中。但是,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=","))
}
我希望在新文件夹中获得一个包含新计算的文件。
【问题讨论】:
-
你为什么要分配
file=myfile,然后显然用paste(names(summary)...)分配另一个文件名?这将进入write.table的第三个参数,即append=寻找逻辑参数。 -
我尝试将其重写为 write.table(summary[[f]], file="/Users/carlcloyed/Desktop/CSV 3",paste(names(summary)[f])," .csv" ,".csv",sep=",") 但是在 write.table(summary[[f]], file = "/Users/carlcloyed/Desktop/CSV 3", : 无效的 'quote' 规范中出现错误
-
你错过了我的意思。您正在尝试将两个不同的文件名传递给函数!第二个文件名被传递到
write.table的append=参数中,这会导致您的错误。试试write.table(summary[[f]], file=myfile)。 -
使用 myfile 我试图设置一个路径到我想要文件去的地方,然后尝试用 paste(names(summary)[f] 我在 write.table 中指定文件的名称重写 myfile = file.path("/Users/Desktop/CSV3",paste(names(summary)[f],".csv")) 现在在 match.names(clabs, names(xi)) 中得到错误:名称与以前的名字不匹配非常感谢您的帮助!
-
计算机科学中最难的两件事:命名变量和缓存失效。我建议您使用
myfile作为目录 的名称是违反第一个目录的一个很好的例子。
标签: r