Как импортировать последние 100 строк с помощью read.csv () в R
Привет у меня огромный файл, и я хочу импортировать только последние 100 строк из этого файла. Как мы можем это сделать, используя read.csv () или любая альтернатива?
6 ответов
пакет R. utils имеет функцию, называемую countLines (). Вы могли бы сделать:
l2keep <- 10
nL <- countLines("your.csv")
df <- read.csv("your.csv", header=FALSE, skip=nL-l2keep)
Если вы находитесь в системе *nix, вам лучше использовать tail -n 100
команда, чтобы взять последние 100 строк. Все, что реализовано в R, будет медленнее и потенциально намного медленнее, ваш файл действительно огромен.
Если вы используете Windows, вы можете взглянуть на это так вопрос.
можно использовать nrows
и skip
аргументы read.csv
. Е. Г. если у вас есть файл с 10000 строк и вы хотели бы импортировать последние 100 строк, вы могли бы попробовать это:
read.csv("yourfile.csv",nrows=100,skip=9900)
но если вы хотите скорость, вам, вероятно, лучше с решениями, данными @Ananda Mahto и @ktdrv
улучшение ответа @lauratboyer, если вы хотите включить заголовки:
# read headers only
column_names <- as.vector(t(read.csv("your.csv", header=FALSE, colClasses='character', nrows=1)))
# then last n lines
l2keep <- 10
nL <- R.utils::countLines("your.csv")
df <- read.csv("your.csv", header=FALSE, col.names=column_names, skip=nL-l2keep)
быстрый и грязный способ, который работает для меня - использовать fread
для чтения больших файлов при настройке select = 1
Так, что читается только первый столбец. Тогда используйте fread
снова для чтения данных из нужных строк. Fread
намного быстрее, чем read.csv
или другие похожие варианты. Подробнее о fread
vs read.csv
здесь: причина скорости fread в данных.пакет таблицы в R