2017-07-31 45 views
1

因此,在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")) 

所以,我的方法是嘗試,並提取所有行在「」和「」之間,允許它們包含「貼現率」,但在此代碼中顯然不成功。


「」
「(9)」
「已損壞,破舊,過時或不實用或沒有」
「通過不再使用任何財產或設備的任何出售或處置Armor Holdings與Armor「
」控股或其受限制子公司有關的業務。「
「」
「\」歸屬債務\「關於銷售和租交易」
‘裝置,在判定時,將’
「承租人的淨租金的義務的當前值租賃的剩餘期限過程中包含的」
‘在這樣的售後租回交易,包括對哪些這樣的’
‘租賃一直延伸,或者可以在出租人的選擇,被擴展的任何期間。這種’
「現值應使用等於」
「利率的貼現率計算,該利息隱含在此類交易中根據GAAP確定。「
「」
「\」受益所有人\「在計算互利‘
」所有權根據交易法賦予這樣的術語規則13D-3"
’和第13D-5,不同之處在於意義(「交易法」第13(d)(3)條「
」中所用的任何特定「人」),該「人」應被視爲擁有受益所有權「
」 「人」有權通過兌換獲得的所有證券或「
」其他證券的行使,這種權利目前是否可以行使或者是「
」可以行使隨後發生的情況。 「
‘\’實益擁有\」和\‘實益擁有\’條款應具有相應的意義「 ‘’
‘\’董事會\」是指:「
‘’
」( 1)相對於一個公司,「
‘法團的董事會;’
‘’
‘(2)相對於一個夥伴關係,的董事會’
」的普通合夥夥伴關係;和「
‘’
‘(3)相對於任何其他人,該板或委員會’服務類似功能,例如人的
」。「
‘’

回答

1

保存您的文件的text.txt,這個工作對我來說:

​​

我說\n作爲新線假人,這樣我就可以在strsplit參數上分裂該功能只返回第二個段落。希望這有助於!

+0

這個解決方案完美適用於我的應用程序,因爲我從互聯網上的目錄中提取所有文本文件,謝謝! –

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,] 
+0

不錯的解決方案,我很努力地將段落劃分,但是這很好地解決了這個問題,+1 – Florian