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

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

Я хочу прочитать некоторые столбцы больших файлов (таблица из 150 строк, >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=" "))

1 ответ

Ты можешь использовать 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 если вы знаете детали о начальных положениях и ширине столбца.

Другие вопросы по тегам