Я пытаюсь прочитать текстовый файл с разными строками:
1
1 2
1 2 3
1 2 3 4
1 2 3 4 5
1 2 3 4 5 6
1 2 3 4 5 6 7
1 2 3 4 5 6 7 8
Чтобы преодолеть эту проблему, я использую аргумент fill = TRUE в read.table, поэтому:
data<-read.table("test",sep="\t",fill=TRUE)
К сожалению, чтобы оценить максимальную длину строки, read.table читает только первые 5 строк файла и генерирует объект, выглядящий следующим образом:
data
V1 V2 V3 V4 V5
1 1 NA NA NA NA
2 1 2 NA NA NA
3 1 2 3 NA NA
4 1 2 3 4 NA
5 1 2 3 4 5
6 1 2 3 4 5
7 6 NA NA NA NA
8 1 2 3 4 5
9 6 7 NA NA NA
10 1 2 3 4 5
11 6 7 8 NA NA
Есть ли способ заставить read.table прокручивать весь файл для оценки максимальной длины строки? Я знаю, что возможным решением будет предоставить номер столбца, например:
data<-read.table("test",sep="\t",fill=TRUE,col.names=c(1:8))
Но поскольку у меня много файлов, я хотел бы оценить это автоматически в R. Любое предложение?: -)
EDIT: исходный файл не содержит прогрессивные числа, поэтому это не решение:
data1<-read.table("test",sep="\t",fill=TRUE)
data2<-read.table("test",sep="\t",fill=TRUE,col.names=c(1:max(data1))