Незакрытый путь SVG кажется закрытым

Вариант 1:

Через соединение с файлом count.fields() подсчитывает количество полей в строке файла на основе некоторого значения sep (что нам здесь неинтересно). Поэтому, если мы возьмем длину этого результата, теоретически мы должны указать количество строк (и строк) в файле.

length(count.fields(filename))

Если у вас есть строка заголовка, вы можете пропустить ее с помощью skip = 1

length(count.fields(filename, skip = 1))

Существуют и другие аргументы, которые вы можете настроить для своих конкретных потребностей, например пропустить пустые строки.

args(count.fields)
# function (file, sep = "", quote = "\"'", skip = 0, blank.lines.skip = TRUE, 
#     comment.char = "#") 
# NULL

Подробнее см. help(count.fields).

Не так уж плохо, насколько скорость идет. Я тестировал его на одном из моих файлов бейсбола, который содержит 99846 строк.

nrow(data.table::fread("Batting.csv"))
# [1] 99846

system.time({ l <- length(count.fields("Batting.csv", skip = 1)) })
#   user  system elapsed 
#  0.528   0.000   0.503 

l
# [1] 99846
file.info("Batting.csv")$size
# [1] 6153740

Вариант 2: Еще одна идея - использовать data.table::fread() для чтения только первого столбца, а затем взять количество строк. Это было бы очень быстро.

system.time(nrow(fread("Batting.csv", select = 1L)))
#   user  system elapsed 
#  0.063   0.000   0.063 
30
задан Phrogz 18 April 2012 в 17:46
поделиться