2017-03-05 4 views
3

私.txtのデータセットは以下のようになります。Rで1行の.txtデータセットを読み取るには?

perms ['AC', 'AT', 'AG', 'AN', 'CA', 'CT', 'CG', 'CN', 'TA', 'TC', 'TG', 'TN', 'GA', 'GC', 'GT', 'GN', 'NA', 'NC', 'NT', 'NG', 'AA', 'CC', 'TT', 'GG', 'NN'] link [11413851, 16930583, 16197703, 1085, 16533859, 16218116, 2309941, 572, 14414084, 13609414, 16552907, 1015, 13594224, 10038778, 11427660, 480, 1055, 445, 1061, 591, 15557040, 9822185, 15583349, 9815249, 11653456] 

このデータセット内の2つの変数があります:「パーマ」と「リンク」は。このデータセットをRでどのように読み取ることができますか?私のサンプルの正確なサイズはあまりにも巨大であるため、ブルートフォースを使用することはできません(そのうちのいくつかはn> 100,000です)。しかし構造はまったく同じです。前もって感謝します!

答えて

2

[または]のあとに0以上のスペースが続くスペースで分割されたreadLinesでデータセットを読み取りました。論理インデックス( 'ind')を作成し、分割されたデータをサブセット化し、それをループしてscanとし、個々の要素を取得して 'data.frame'に変換します。

lines <- readLines("file.txt") 
lines1 <- strsplit(lines, "\\s*\\[|\\]\\s*")[[1]] 
ind <- c(TRUE, FALSE) 
data.frame(setNames(lapply(lines1[!ind], function(x) 
    trimws(scan(text=x, what = "", sep=",", quiet=TRUE))), lines1[ind])) 
# perms  link 
#1  AC 11413851 
#2  AT 16930583 
#3  AG 16197703 
#4  AN  1085 
#5  CA 16533859 
#6  CT 16218116 
#7  CG 2309941 
#8  CN  572 
#9  TA 14414084 
#10 TC 13609414 
#11 TG 16552907 
#12 TN  1015 
#13 GA 13594224 
#14 GC 10038778 
#15 GT 11427660 
#16 GN  480 
#17 NA  1055 
#18 NC  445 
#19 NT  1061 
#20 NG  591 
#21 AA 15557040 
#22 CC 9822185 
#23 TT 15583349 
#24 GG 9815249 
#25 NN 11653456 
+0

ありがとうございます@akrun、それはかなりうまくいきます!より多くの変数でこのコードを使用できますか? –

+0

@ÜbelYildmar私は論理インデックスを使用しているので、これは複数の変数でも動作するはずです。 – akrun

関連する問題