0

完成我很难理解的 R 教程。

目录是一个包含大量 csv 文件的文件夹。该函数将多个文件中的一个作为 id,并返回每个文件中的记录数。

我的功能:

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

   csvfiles <- sprintf("/Users/myname/Desktop/%s/%03d.csv", directory, id)

   nrows <- sapply( csvfiles, function(f) nrow(read.csv(f)))
   data.frame(ID=sprintf('%03d', id), 
              countrows=sapply(csvfiles,function(x) length(count.fields(x))),
             row.names=id
           )
       }

然后完成("specdata", 100:105) 返回

    ID countrows
100 100      1097
101 101       731
102 102      1462
103 103      3653
104 104      2558
105 105      2192

我必须怎么做才能使最左边的列是从 1 开始的序列?因此,例如,第一条记录是 1 100 和 1092,第二条记录是 2 101 和 731

4

2 回答 2

5

第一个明显的列只是行的名称(查看 eg ncol(specdata))。您可以按如下方式重命名行:

row.names(specdata) <- 1:nrow(specdata)
于 2013-01-16T21:26:23.897 回答
2

在函数内部,在数据框调用中使用它:

row.names = 1: length(id)
于 2013-01-17T01:19:15.113 回答