【问题标题】:R - extract data which changes position from file to file (txt)R - 提取从文件更改位置的数据(txt)
【发布时间】:2018-03-14 14:20:09
【问题描述】:

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

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

提前致谢

编辑

在某些文件中,我会有这样的数据:

第 1 列--------第 2 列。

设备ID-----A。

电压----- 500。

当前--------28

但是在生活中的某个时刻,软件发生了变化,添加了另一个变量,新文件 ii 是这样的:

第 1 列--------第 2 列。

设备ID-----A。

电压----- 500。

错误------------5.

当前--------28

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

【问题讨论】:

标签: r


【解决方案1】:

如果使用read.table 无法读取这些文件,请使用readLines,然后找到以您需要的关键字开头的那些行。

例如:

示例文件 1(包括破折号和额外的换行符):

Column 1-------Column 2.

Device ID------A.

Voltage------- 500.

Error------------5.

Current--------28

示例文件2(以逗号作为分隔符):

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 删除任何不是数字的东西。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-05
    • 2018-07-10
    • 2020-01-07
    相关资源
    最近更新 更多