我只有一个文本文件NPFile
,其中包含100种不同的报纸文章,其长度为3523行。我正在尝试为每篇文章挑选并解析不同的数据字段以进行文本处理。这些字段是:全文:出版日期:,出版标题:等等...
我正在使用grep
来选择包含所需数据字段的不同行。尽管我可以获取行号(字段的开始和结束位置),但是当我尝试使用行号提取实际文本并将其放入向量时却出现了错误:
#Find full text of article, clean and store in a variable
findft<-grep ('Full text:', NPFile, ignore.case=TRUE)
endft<-grep ('Publication date:', NPFile)
ftfield<-(NPFile[findft:endft])
最后一行ftfield<-(NPFile[findft:endft]
发出以下警告消息:
1: In findft:endft :
numerical expression has 100 elements: only the first used
起点findft
和终点endft
均包含100个元素,但是如警告所示,ftfield
仅包含第一个元素(长度为11行)。我假设(错误/错误地)将提取全文字段的每100个实例的相应行并将其存储在ftfield
中-但显然我没有对此进行正确编码。任何帮助将不胜感激。
数据示例(这些是与文本文件中的100个相关联的字段和数据):
等待500年的洪水;红河横冲直撞:严重的天气事件,新纪录比预期的要频繁。
全文:当红河肆虐于北达科他州的愤怒堤防而徒劳地竖立的临时堤防,淹没了洪水高度26英尺以下的水柱下的城市时,气象学家们很难按其描述的时间来描述它的大小。 克里斯托弗·哥伦布(Christopher Columbus)到达新大陆的海岸以来,仅发生过一次灾难性的500年洪水(有人称之为)。究竟是700年的洪水还是300年的洪水都值得商question。 洪水的规模和力量是前所未有的。尽管红河以前曾肆虐中西部,但法戈和大福克斯的洪峰高度却几乎不可理解。 但是,气候记录的打破速度比以往任何时候都要快。长达一百年的暴风雨可能在数年之内重演,就像等待另一个世纪一样。这只是对严重性进行分类的一种方法,而不是对频率进行分类的方法。美国国家海洋与大气管理局的气候学家汤姆•卡尔说:“现在再也没有一百年的历史了。” 美国可靠,一致的气象记录可以追溯到150年前。人类的发展已经改变了地球的表面和大气层,促进了比原始环境无法产生的更大的天气变化和影响。 切萨皮克湾可能发生500年的事件还不确定。去年是淡水涌入海湾的记录。 1996年1月洪流融化到河口,记录的日平均流量超过了1972年阿格尼丝热带风暴期间的流量,这是这些地区100年气象事件的基准。但是,根据美国地质调查局的调查,对海湾生态系统的影响没有像1972年那样具有破坏性。 在过去的一个世纪中,海湾的海平面上升了近一英尺,是过去5,000年的三倍。马里兰大学的科学家Stephen Leatherman将其与全球气候变暖联系起来。河口岛屿和高地海岸线正在加速侵蚀。 当然,海湾分水岭的地形与红河的地形不同。这不仅是流速和降雨,还包括水的流向以及如何在不渗入干燥土地的情况下逸出。我们只能希望切萨皮克地区经过如此考验再过500年。 发布日期:4/22/97
出版日期:1997年4月22日
出版物标题:《太阳》;马里兰州巴尔的摩。
标题:等待500年的洪水;红河横冲直撞:严重的天气事件,新纪录比预期的要多。:[最终版]
从上面的数据示例中,我检查ftfield时有11行:
[1]“全文:当红河肆虐在北达科他州的怒气中徒劳地竖立的临时堤防,淹没了淹没洪水高度26英尺的水柱以下的城市时,气象学家被迫描述其在人类中的震级年表。“
[2]“长达500年的洪水,有人称它为灾难性天气事件,自克里斯托弗·哥伦布到达新世界的海岸以来只发生过一次。无论是700年的洪水还是300年的洪水,一年的洪水值得商open。“
[3]“洪水的规模和力量是史无前例的。虽然红河以前曾肆虐中西部,但法戈和大福克斯的洪峰高度却几乎令人难以理解。”
[4]“但是,气候记录的破灭比以往任何时候都快。一场长达一百年的暴风雨可能在几年内重现,就像等待另一个世纪一样。这仅仅是对严重程度进行分类的一种方式,而不是频率。”不再是一百年的盛事,” \“国家海洋与大气管理局的气候学家汤姆•卡尔(Tom Karl)说。”
[5]“美国可靠,一致的气象记录可以追溯到150年前。人类的发展改变了地球的表面和大气,比未接触的环境本身会产生更大的天气变化和影响。”
[6]“切萨皮克湾可能会发生500年的事件尚不确定。去年是淡水涌入海湾的记录。1996年1月洪流融化到河口的洪流记录的日平均水平超过了2000年期间的流量。 1972年的艾格尼丝热带风暴是这些地区100年气象事件的基准。但是,根据美国地质调查局的调查,对海湾生态系统的影响没有1972年那么严重。
[7]“在过去的一个世纪中,海湾的海平面上升了近一英尺,是过去的5,000年的三倍。马里兰大学的科学家斯蒂芬·莱特曼(Stephen Leatherman)与全球气候变暖有联系。河口岛和高地海岸线在加快步伐。”
[8]“海湾流域的地形当然与红河的地形不同。这不仅是流量和降雨,还包括水的流向和流向何处而不会过多地侵入旱地。我们只能希望在切萨皮克地区经过如此考验之前再过500年。”
[9]“发布日期:4/22/97”
[10]“”
[11]“出版日期:1997年4月22日”
最后,findft [1]与endft [1]相对应,依此类推,直到findft [100]和endft [100]。
答案 0 :(得分:0)
我假设findft
将包含几个索引以及endft
。我还假设它们都具有相同的长度,并且它们由相同的索引配对(例如findft[5]
对应于endft[5]
),并且您也希望这两个索引之间的所有NPfile元素和其他对一样。
如果是这样,请尝试:
ftfield = lapply(1:length(findft), function(x){ NPFile[findft[x]:endft[x]] })
这将返回一个列表。我无法保证这会成功,因为没有适用的数据示例。
答案 1 :(得分:0)
我们可以使用Map(function(x, y) NPFile[x:y], findft, endft)
来做到这一点。获取从'findft'到'endft'的每个对应元素的值序列,然后基于该索引对'NPFile'进行子集
var app = new Vue({
el: '#app',
data: {
items:[
'http://en.pixword.net/image-SEAHORSE_67.jpg',
'https://sanet.pics/storage-4/1018/4VV800Yz5yO9HVyAQ2toRQzewrpqrwLv.jpg',
'https://i.pinimg.com/originals/7f/09/e0/7f09e06724fa001729e7f2f941ba4296.jpg',
'https://i.pinimg.com/originals/62/70/57/627057f8c21514b2a3b1be6efe05680f.jpg',
'http://nutanxt.com/wp-content/uploads/2018/10/case-study-high-volume-image-data-analysis.jpg',
'https://thumbs.dreamstime.com/x/seasons-greetings-4022048.jpg',
'https://thumbs.dreamstime.com/x/seasons-greetings-4022048.jpg'
]
},
methods:{
mousemove(e){
console.log(e)
},
}
})