试图创建一个在目录中查找一堆 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))) }”
我看不到额外的“}”是从哪里来的?