我有一個文件是這樣的:閱讀與列的可變數量的文本文件列表
mylist.txt
234984 10354 41175 932711 426928
1693237 13462
這個文件的每一行具有不同數量的元素,每行1個元件的最小值。 我想讀取到像這樣的列表:
> print(head(mylist,2))
[[1]]
[1] 234984 10354 41175 932711 426928
[[2]]
[1] 1693237 13462
我有一個文件是這樣的:閱讀與列的可變數量的文本文件列表
mylist.txt
234984 10354 41175 932711 426928
1693237 13462
這個文件的每一行具有不同數量的元素,每行1個元件的最小值。 我想讀取到像這樣的列表:
> print(head(mylist,2))
[[1]]
[1] 234984 10354 41175 932711 426928
[[2]]
[1] 1693237 13462
假設空間分隔符:
fc <- file("mylist.txt")
mylist <- strsplit(readLines(fc), " ")
close(fc)
編輯:
如果值是由幾個空間(一個/或unconsistent方式),可以匹配定界符正則表達式限定:
mylist.txt
234984 10354 41175 932711 426928
1693237 13462
fc <- file("mylist.txt")
mylist <- strsplit(readLines(fc), " +")
close(fc)
編輯#2
而且由於strsplit
返回字符串,您需要將數據轉換爲數字(這是一個容易):
mylist <- lapply(mylist, as.numeric)
一個可能的答案是,首先閱讀充滿的NA列表,然後這樣刪除它們:
l<-as.list(as.data.frame(t(read.table("mylist.txt",fill=TRUE,col.names=1:max(count.fields("mylist.txt"))))))
l<-lapply(l, function(x) x[!is.na(x)])
我不知道是否有是一個更簡單的方法。
您可以通過使用lapply
代替sapply
lapply(l, function(x)x[!is.na(x)])
由於簡化第二代線您的示例列表項顯示數字之間保留的空格,不清楚您是否希望每行都是長字符串或數字向量。 – 2011-01-30 18:02:00
矢量數字。我不確定它爲什麼顯示空格。無論如何,aL3xa答案似乎工作得很好。 – pms 2011-02-02 11:25:40