R - 提取从文件到文件的位置变化的数据(txt)

时间:2018-03-14 14:20:10

标签: r

我有一个包含大量txt文件的文件夹,我必须从中提取特定数据。问题是文件的格式已经改变一次,我需要提取的数据的位置也发生了变化。所以我需要处理不同格式的文件。

为了使其更清晰,在第4列中我有变量的名称,在5中我有值,但有时这是在不同的行。有没有办法找到变量的名称(在哪一行),然后提取它的值?

提前致谢

编辑

在某些文件中,我会得到如下数据:

第1栏-------第2栏。

设备ID ------ A。

电压------- 500。

当前-------- 28

但是在生活的某些方面,软件中有一个变化来添加另一个变量,新文件是这样的:

第1栏-------第2栏。

设备ID ------ A。

电压------- 500。

错误------------ 5。

当前-------- 28

所以我需要处理这两种类型的数据,提取不同行中的相同变量。

1 个答案:

答案 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删除任何不是数字的内容。