Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 如何计算一个文件夹中多个csv的行数?_R_Csv_Count_Data.table - Fatal编程技术网

R 如何计算一个文件夹中多个csv的行数?

R 如何计算一个文件夹中多个csv的行数?,r,csv,count,data.table,R,Csv,Count,Data.table,我在一个文件夹中有500多个“.csv”文件。我想计算每个文件中的总行数,因为我想确认我合并的所有文件是否正确 我尝试使用长度(计数/字段),但我希望创建一个循环,以避免逐个执行。我是新手,所以我的编程技能非常基本。有没有一种方法可以使用files=dir(“path”)的代码 length(count.fields(文件,skip=1)) 使用base R时,以下各项应能起作用(fread从FG7的回复中获得的速度比read.csv对于大文件要快,但如果大量情况下read.csv就可以了):

我在一个文件夹中有500多个“.csv”文件。我想计算每个文件中的总行数,因为我想确认我合并的所有文件是否正确

我尝试使用长度(计数/字段),但我希望创建一个循环,以避免逐个执行。我是新手,所以我的编程技能非常基本。有没有一种方法可以使用files=dir(“path”)的代码

length(count.fields(文件,skip=1))

使用base R时,以下各项应能起作用(
fread
从FG7的回复中获得的速度比
read.csv
对于大文件要快,但如果大量情况下
read.csv
就可以了):


文件使用
count.fields
的优点是它不会将文件加载到内存中。 因此,它应该比使用
read.csv
或其他函数更快

获取文件列表:

 files <- list.files(path, full.names=TRUE)
基准
你在Mac/Linux上吗?只需在命令行上使用
wc-l/path/to/for/*
,您也可以使用
system
功能从R控制台传递该命令。
 files <- list.files(path, full.names=TRUE)
lapply(X = files, FUN = function(x) {
  length(count.fields(x, skip = 1))
 })
library(rbenchmark)

benchmark("count.fields" = {
  lapply(X = files, FUN = function(x) {
    length(count.fields(x, skip = 1))
  })
},
"read.csv" = {
  lapply(X = files, FUN = function(x) {
    nrow(read.csv(x, skip = 1))
  })
},
"fread" = {
  lapply(X = files, FUN = function(x) {
    nrow(data.table::fread(x, skip = 1))
  })
},
replications = 1000,
columns = c("test", "replications", "elapsed",
            "relative", "user.self", "sys.self"))


          test replications elapsed relative user.self sys.self
1 count.fields         1000    0.81    1.000      0.28     0.50
3        fread         1000    6.24    7.704      4.57     1.66
2     read.csv         1000    2.93    3.617      2.16     0.76