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