因此,在R中的文本文件中,我需要扫描许多文档,查找带有"折扣率"的段落。在其中提到。然后我想要提取它所找到的整个段落而且只是那个。在每个段落之前和之后都有一个空白行写成""在文本文件中。我提供了一些示例代码,说明我尝试过的不起作用以及txt文件的几个段落,其中一个包含关键字"折扣率"
t <- c(grep(" discount rate ",txt,ignore.case = T),grep(" discounted cash flow",txt,ignore.case = T))
temp <- unlist(str_extract_all(txt,"\r\r. discount rate .\r\r"))
所以我的方法是尝试提取&#34;&#34;之间的所有行。和&#34;&#34;允许他们包含&#34;贴现率&#34;但是这个代码显然没有成功。
&#34;&#34;
&#34; (9)任何出售或处置任何财产或设备&#34;
&#34;已经损坏,磨损,过时或没有用或没有&#34;
&#34; Armor Holdings更长时间地使用Armor的业务&#34;
&#34;控股或其受限制的子公司。&#34;
&#34;&#34;
&#34; \&#34;归属债务\&#34;在售后回租交易方面&#34;
&#34;在确定时,意味着&#34;
的义务的现值
&#34;承租人在租赁剩余期限内的净租金支付包括&#34;
&#34;在此类售后租回交易中,包括此类&#34;
的任何期间
&#34;租约已经延长,或者可以根据出租人的选择延长。例如&#34;
&#34;现值应使用等于&#34;
率的贴现率计算
&#34;此类交易中隐含的利息,根据GAAP确定。&#34;
&#34;&#34;
&#34; \&#34;受益所有者\&#34;具有在规则13d-3和#34中赋予该术语的含义;
&#34;以及根据“交易法”第13d-5条规则,但在计算福利金时除外
&#34;任何特定人员的所有权\#34; (该术语用于第13(d)(3)和#34;中
&#34;交换法案),这样的\#34; person \&#34;应被视为拥有实益所有权&#34;
&#34;所有证券中的这种\#34; person \&#34;有权通过转换获得或&#34;
&#34;行使其他证券,无论这种权利目前是否可以行使,或者是#34;
&#34;只有在后续条件发生时才可行使。条款&#34;
&#34; \&#34;有益地拥有\&#34;和\#34;实益拥有\&#34;应具有相应的含义。&#34;
&#34;&#34;
&#34;董事会\&#34;董事会是指:&#34;
&#34;&#34;
&#34; (1)关于公司,&#34;的董事会
&#34;公司;&#34;
&#34;&#34;
&#34; (2)关于合伙企业,&#34;
的董事会
&#34;合伙的普通合伙人;和&#34;
&#34;&#34;
&#34; (3)关于任何其他人,董事会或委员会&#34;
&#34;此类人员具有类似功能。&#34;
&#34;&#34;
答案 0 :(得分:2)
将文件另存为text.txt,这对我有用:
data <- readLines("text.txt")
data[nchar(data)==0]="\n"
data = strsplit(paste(data,collapse=""),"\n")[[1]]
data[grepl("discount rate",data,ignore.case = T)]
我添加了\n
作为新行的假人,所以我可以在strsplit参数中拆分它。该函数仅返回第二段。希望这有帮助!
答案 1 :(得分:1)
如果您不想更改文本中的换行符,可以执行以下操作(txt
是您问题中的字符串向量)
# generate a variable for paragraph number
df <- data.frame(txt, paragraph = cumsum(txt == ""))
# find paragraphs with the search term
keep_paragraph <- df[grep("discount rate", df[, "txt"]), "paragraph"]
# subset the data.frame
df <- df[df$paragraph %in% keep_paragraph,]