1
是否有任何簡單的R函數從文本文件(* .txt或尤其是*)讀取特定行。 csv)沒有讀取整個文件到內存中?我想讀取文件的唯一選擇線路,例如讀取只有x1==b
線:R下的文件(txt,csv)的低級訪問
x1 x2 x3
a 1 1
a 2 2
b 2 3
b 1 4
a 2 1
->
x1 x2 x3
b 2 3
b 1 4
也許一些Perl的工具,R,但它很容易(對R用戶)?
是否有任何簡單的R函數從文本文件(* .txt或尤其是*)讀取特定行。 csv)沒有讀取整個文件到內存中?我想讀取文件的唯一選擇線路,例如讀取只有x1==b
線:R下的文件(txt,csv)的低級訪問
x1 x2 x3
a 1 1
a 2 2
b 2 3
b 1 4
a 2 1
->
x1 x2 x3
b 2 3
b 1 4
也許一些Perl的工具,R,但它很容易(對R用戶)?
默認read.*
函數默認情況下全部讀取所有內容。所以一種選擇是使用外部濾波器---例如awk或sed腳本或grep表達式---然後在經過篩選後通過read.table()
從該流讀取。
您可以使用'readLines'一次讀取塊...或'read.table'並設置'skip'和'nrows'參數...但是,如果您有權訪問外部過濾器(如Dirk在下面的建議),你可以說'grep「^ b」myfile.txt> body.txt; head -1 myfile.txt> header.txt; cat header.txt body.txt> small.txt' – 2012-08-01 16:10:59
你可以在這裏找到一些有趣的解決方案ilposed.net - lazy.frame – 2012-08-01 16:58:14
我會使用@ Ben的解決方案,但也看到這個:http://colbycol.r-forge.r -project.org/ – lockedoff 2012-08-01 20:35:07