我想请你帮忙。我的数据看起来像这样:(一条记录分为四行:
9540 16
0.1586E-03-0.3713E-04 0.1559E-03-0.4054E-04 0.2610E-02 0.2589E-03 0.4509E-03
0.7271E-03 0.2286E-03 0.8627E-03 0.1511E-02 0.1208E-03 0.1169 0.5486E-01
0.1419E-01 0.1715
9546 16
0.1546E-03-0.2273E-04 0.1504E-03-0.1516E-04 0.2517E-02 0.1968E-03 0.5512E-03
0.7556E-03 0.2998E-03 0.1024E-02 0.1495E-02 0.6889E-03 0.1134 0.5461E-01
0.1418E-01 0.1708
我想将其读入R并看起来像这样(在一行中):
9540 16 0.1586E-03 -0.3713E-04 0.1559E-03 -0.4054E-04 0.2610E-02 0.2589E-03 0.4509E-03 0.7271E-03 0.2286E-03 0.8627E-03 0.1511E-02 0.1208E-03 0.1169 0.5486E-01 0.1419E-01 0.1715
9546 16 0.1546E-03 -0.2273E-04 0.1504E-03 -0.1516E-04 0.2517E-02 0.1968E-03 0.5512E-03 0.7556E-03 0.2998E-03 0.1024E-02 0.1495E-02 0.6889E-03 0.1134 0.5461E-01 0.1418E-01 0.1708
答案 0 :(得分:0)
我们可以使用readLines
读取文件。根据具有gl
的组,使用paste
,tapply
'行'创建分组变量。如果需要,我们可以使用str_trim
library(stringr)
删除前导和滞后空格
lines <- readLines('fourlines.txt')
lines2 <- tapply(lines, as.numeric(gl(length(lines), 4, length(lines))),
FUN= paste, collapse=' ')
library(stringr)
lines2 <- str_trim(unname(lines2))
输出'lines2'
lines2
#[1] "9540 16 0.1586E-03-0.3713E-04 0.1559E-03-0.4054E-04 0.2610E-02 0.2589E-03 0.4509E-03 0.7271E-03 0.2286E-03 0.8627E-03 0.1511E-02 0.1208E-03 0.1169 0.5486E-01 0.1419E-01 0.1715"
#[2] "9546 16 0.1546E-03-0.2273E-04 0.1504E-03-0.1516E-04 0.2517E-02 0.1968E-03 0.5512E-03 0.7556E-03 0.2998E-03 0.1024E-02 0.1495E-02 0.6889E-03 0.1134 0.5461E-01 0.1418E-01 0.1708"
如果我们想删除多余的空格
lines2 <- gsub('\\s+', ' ', lines2)