2015-02-23 101 views
0

我,使用R工作室來處理它有以下形式的文本數據的文本文件:一遍又一遍如何從一個文本文件中提取特定的段落中的R

* 

A name 
A date 
A referene number 

A text....bla bla bla bla 
bla bla bla bla bla bla bla bla bla bla bla bla 
bla bla bla bla bla bla bla bla bla bla bla bla 
bla bla bla bla bla bla bla bla bla bla bla bla 


* 

A name 
A date 
A reference number 

Another text....bla bla bla bla 
bla bla bla bla bla bla bla bla bla bla bla bla 
bla bla bla bla bla bla bla bla bla bla bla bla 
bla bla bla bla bla bla bla bla bla bla bla bla 

* 

和相同的模式。

我想僅獲取文本並將它們中的每一個作爲元素存儲在列表中。我做了A = grep(「\ *」,myText)來獲取*所在的行數。我想通過文件循環來獲取從A [1] +6開始並結束於A [2] -1的文本。

+1

它可能會幫助我們更好一點,如果你沒有使用**唧唧歪歪**和開始/結束標記,也就是不在你的實際數據。我會建議發佈一些實際的數據,並嘗試解決您的問題。 – hwnd 2015-02-23 14:50:02

回答

0

替換「的/ tmp /出」與您的文件名

txt <- readLines("/tmp/out") 
lns <- data.frame(beg=which(grepl("beginning of the paragraph i want",txt)), 
        end=which(grepl("end of the paragraph i want",txt))) 
txt.2 <- lapply(seq_along(lns$beg),function(l){ 
         paste(txt[seq(from=lns$beg[l], 
             to=lns$end[l], 
             by=1)],collapse=" ") 
             }) 
txt.2 

# or for referencing by the star, the lns is obtained this way 
lns <- data.frame(beg=rev(rev(grep("[*]",txt) + 6)[-1]), 
       end=(grep("[*]",txt) - 2)[-1]) 
+0

我有一個變量A,其中包含*的行號,我想要提取的段落在A [1] +6處開始,因爲段落從*開始6行後開始並在A [2] -1結束。我想我需要一個循環她的權利? – Nour 2015-02-23 19:04:13

+0

對,如果星號是參考,則可以計算該參考的開始和結束行號 – 2015-02-23 21:03:03

相關問題