R项目数据框返回太多列

时间:2013-01-16 21:19:54

标签: r function dataframe

通过R教程,我很难理解。

目录是包含大量csv文件的文件夹。该函数将id作为一个或多个文件的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&amp; 1092,第二记录2 101&amp; 731

2 个答案:

答案 0 :(得分:5)

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

row.names(specdata) <- 1:nrow(specdata)

答案 1 :(得分:2)

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

row.names = 1: length(id)