Читайте только n-й столбец текстового файла, который не имеет заголовка с R и sqldf

У меня такая же проблема, как и этот вопрос: выбор каждого столбца N в использовании SQLDF или read.csv.sql

Я хочу прочитать несколько столбцов больших файлов (таблица из 150rows,> 500 000 столбцов, пробел разделен, заполнен числовыми данными и доступна только 32-битная система). Этот файл не имеет заголовка, поэтому код в потоке выше не работал, и я решил написать новый пост.

У вас есть идея решить эту проблему?

Я думал о чем-то подобном, но любые результаты с fread или read.table также в порядке:

MyConnection <- file("path/file.txt") df<-sqldf("select column 1 100 1000 235612 from MyConnection",file.format = list(header=F,sep=" ")) 

Вы можете использовать substr чтобы указать начальную и конечную позиции столбцов, которые вы хотите прочитать, если они имеют фиксированную ширину:

 x <- tempfile() cat("12345", "67890", "09876", "54321", sep = "\n", file = x) myfile <- file(x) sqldf("select substr(V1, 1, 1) var1, substr(V1, 3, 5) var2 from myfile") # var1 var2 # 1 1 345 # 2 6 890 # 3 9 76 # 4 5 321 

См. Это сообщение в блоге для нескольких примеров. Оператор «select» можно легко создать с помощью paste если вы знаете подробности о начальных позициях и ширинах столбцов.