如何在R中的文本文件中间提取数字

时间:2016-06-06 23:55:50

标签: r

我有以下形式的文本文件,我对中间部分感兴趣,有两列数字。如何通过R。

阅读此文本文件
public TimeoutWorkqueueView getTimeoutWorkqueueView(Integer id) {

    String sql = "SELECT t1.wId, t1.twId, t1.name, t1.timeout, t1.pos"
            + " FROM ("
            + " SELECT w.id AS wId, tw2.id AS twId, w.name AS name, tw2.timeout AS timeout, @p:=@p+1 AS pos"
            + " FROM timeout_workqueue tw1"
            + " INNER JOIN timeout_workqueue tw2"
            + " ON tw1.workqueue_id = tw2.workqueue_id"
            + " INNER JOIN workqueue w"
            + " ON tw1.workqueue_id = w.id"
            + " WHERE tw1.id = ?"
            + " ORDER BY tw2.id) t1, (SELECT @p:=1) c"
            + " WHERE t1.twId = ?";

    return (TimeoutWorkqueueView) getJdbcTemplate().queryForObject(sql, new BeanPropertyRowMapper(TimeoutWorkqueueView.class), id, id);

}

1 个答案:

答案 0 :(得分:2)

您可以使用readLines逐行阅读。然后,使用一些正则表达式,您可以保留数字线。我还在使用read.table将清理后的文本转换为data.frame之前删除了开头的额外空格。

ll <- readLines(con = textConnection("COPY YOUR TEXT HERE"))
read.table(text=gsub("^ +","",grep("\\d+[.]\\d+ +\\d+[.]\\d+",ll,value=TRUE)))

     V1    V2
1 857.97 0.000
2 864.83 7.252
3 871.70 7.252
4 878.56 7.155
5 885.42 7.131
6 892.27 7.113