使用for循环使用read.csv()读取某些文件,但它只返回"' file'必须是字符串或连接"

时间:2016-07-31 14:53:56

标签: r csv opencsv

以下是我正在使用的数据。 https://d396qusza40orc.cloudfront.net/rprog%2Fdata%2Fspecdata.zip

我试图创建一个名为"污染物的功能"将加载选定的文件,聚合(rbind)列,并返回某列的平均值。除了如何运行循环之外,我已经找到了所有内容,因此我可以将多个文件转换为一个大数据框。

pollutantmean <- function(directory = "specdata", pollutant, id =              1:332) {
empty_tbl <- data.frame()
for (id in 1:332) {
    files_full <- Sys.glob("*.csv")
    fileQ <- files_full[[i]]
    empty_tbl <- rbind(empty_tbl, read.csv(fileQ, header = TRUE))
}
goodata <- na.omit(empty_tbl)
if(pollutant == "sulfate") {
    mean(goodata[,2])
} else {
    mean(goodata[,3])
}
}

这个for循环本身就可以工作,但是当我尝试使用我更大的功能时

Qt3DCore::QEntity * meshEntity = new Qt3DCore::QEntity( rootEntity ); 
Qt3DRender::QMesh * mesh = new Qt3DRender::QMesh(); 

QUrl url; 
url.setScheme("file"); 
url.setPath("/tmp/trefoil.obj");
mesh->setSource( url ); 

// now i print some of properties. 
qDebug() << mesh->geometry() << ", children nodes=" << mesh->childrenNodes().count(); 
// ... children... primitiveCount... and so on. I see only empty values.

我在read.table中得到&#34;错误(file = file,header = header,sep = sep,quote = quote,:   &#39;文件&#39;必须是字符串或连接&#34;。

我完全失去了如何解决这个问题,并尝试了许多不同的方法。我确定我弄乱了文件的命名,但我自己尝试了for循环,它运行良好......

1 个答案:

答案 0 :(得分:0)

考虑在使用function的directory参数的csv文件上使用__exit__。下面假设 specdata 是当前工作目录的子文件夹:

lapply()