2017-03-05 71 views
3

我的.txt數據集如下所示:如何閱讀R中的單行.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] 

有此數據集中兩個變量:「燙髮」和「鏈接」。我如何在R中讀取這個數據集?我不能使用蠻力,因爲我的樣本的確切大小太大(其中一些n> 100 000)。但結構完全一樣。先謝謝你!

回答

2

我們讀取的數據集是readLines,按空格分開,然後按[]後跟零個或多個空格。創建一個邏輯索引('ind'),分割數據的子集,通過循環來獲取各個元素,並將其轉換爲'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