В R я использую эту функцию для данных, упорядоченных по строкам разной длины в текстовом файле, предполагая, что ваш пример является истинным представлением имеющегося у вас текстового файла.Возвращает список, а не фрейм данных или матрицу.Если столбцы в вашем файле не связаны каким-либо образом, использование матрицы или кадра данных не имеет смысла.Список дает правильное представление: группа векторов, каждый из которых представляет строку и назван в честь первого элемента строки.
readRows <- function(file,sep="\n",split=" ",...){
tt <- strsplit(
scan(file,what="list",sep=sep,...),
split=split
)
out <- lapply(tt,function(i) as.numeric(i[-1]))
names(out) <- sapply(tt,`[`,1)
out
}
Возвращает именованный список, в котором имя каждого элемента являетсяпервый элемент в строке, а элементы представляют собой строки чисел.Если ваши данные не являются числовыми, вы можете адаптировать эту функцию по мере необходимости.
zz <- textConnection("data1 12 33 12
data2 11
data3 33 44 25 51 42 11")
readRows(zz)
close(zz)