2015-02-23 81 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

相关问题