0

试图创建一个在目录中查找一堆 CSV 文件的函数,然后以文件 ID 作为参数,输出一个表(实际上是数据框 - R 语言的新内容),其中有 2 列,一个标题为 ID相应的 id 参数和第二列将是该文件中的行数。

这些文件的标题都是 001.csv - 322.csv

例如输出看起来像列标题:ID,第一条记录:001(源自 001.csv),第二列:标题“行数”,第一条记录

该函数如下所示:myfunction(directory,id) Directory 是 csv 文件所在的文件夹,id 可以是数字(或向量?),例如简单的 1 或 9 或 100,也可以是 200:300 之类的向量。

在后面的 200:300 的情况下,输出将是一个包含 100 行的表,其中第一行将是 200,其中包含 10 行数据。

至今:

complete <- function(directory,id = 1:332) {

    # create an object to help read the appropriate csv files later int he function
    
     csvfilespath <- sprintf("/Users/gcameron/Desktop/%s/%03d.csv", directory, id)

     colID <- sprintf('%03d', id)

    # now, how do I tell R to create a table with 2 columns titled ID and countrows?
    # Now, how would I take each instance of an ID and add to this table the id and         count of rows in each?
}

如果这看起来真的很基本,我很抱歉。我正在学习的教程进展迅速,我观看了每个视频讲座并进行了大量研究。SO 是迄今为止我最喜欢的资源,我通过使用它学得更好。也许是因为它是个性化的并且直接适用于我的直接任务。我希望我的问题也能让其他正在学习 R 的人受益。

基于以下反馈

我现在有以下脚本:

complete <- function(directory,id = 1:332) {
    csvfiles <- sprintf("/Users/gcameron/Desktop/%s/%03d.csv", directory, id)
    nrows <- sapply( csvfiles, function(f) nrow(read.csv(f)))
    data.frame(ID=id, countrows=sapply(csvfiles,function(x) length(count.fields(x)))
    }

这看起来像我在正确的轨道上吗?我收到错误“错误:意外'}' in:”data.frame(ID=id, countrows=sapply(csvfiles,function(x) length(count.fields(x))) }”

我看不到额外的“}”是从哪里来的?

4

1 回答 1

3
data.frame(ID=id, countrows=sapply(csvfilepath, function(x) length(count.fields(x))))
于 2013-01-16T14:47:40.570 回答