我有一个包含大量txt文件的文件夹,我必须从中提取特定数据。问题是文件的格式已经改变一次,我需要提取的数据的位置也发生了变化。所以我需要处理不同格式的文件。
为了使其更清晰,在第4列中我有变量的名称,在5中我有值,但有时这是在不同的行。有没有办法找到变量的名称(在哪一行),然后提取它的值?
提前致谢
编辑
在某些文件中,我会得到如下数据:
第1栏-------第2栏。
设备ID ------ A。
电压------- 500。
当前-------- 28
但是在生活的某些方面,软件中有一个变化来添加另一个变量,新文件是这样的:
第1栏-------第2栏。
设备ID ------ A。
电压------- 500。
错误------------ 5。
当前-------- 28
所以我需要处理这两种类型的数据,提取不同行中的相同变量。
答案 0 :(得分:0)
如果使用read.table
使用readLines
无法阅读这些文件,请找到以您需要的关键字开头的那些行。
例如:
示例文件1(包含破折号和额外的换行符):
Column 1-------Column 2.
Device ID------A.
Voltage------- 500.
Error------------5.
Current--------28
示例file2(使用逗号作为分隔符):
Column 1,Column 2.
Device ID,A.
Current,555
Voltage, 500.
Error,5.
对于这两种情况都:
text = readLines(con = file("your filename here"))
curr = text[grepl("^Current", text, ignore.case = T)]
返回:
表示文件1:
[1] "Current--------28"
对于文件2:
[1] "Current,555"
然后使用gsub
删除任何不是数字的内容。