Вы можете использовать scan
для чтения многострочных данных, тем более что это определенный формат.
dat <- data.frame(scan("data.txt",
what = as.list(c("character","character","number","number",
"character","number","character",
rep("character",24))),
multi.line=TRUE))
names(dat) <- paste("V",1:ncol(dat),sep="")
, что дает
> dat
V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 V11 V12 V13 V14 V15 V16
1 04001400 HI 34.50 118.27 19480701 08 LST 0 0 0 0 0 0 0 0 0
2 04001400 HI 34.50 118.27 19480801 08 LST 0 0 0 0 0 0 0 0 0
3 04001400 HI 34.50 118.27 19480901 08 LST 0 0 0 0 0 0 0 0 0
V17 V18 V19 V20 V21 V22 V23 V24 V25 V26 V27 V28 V29 V30 V31
1 0 0 0 MIS MIS MIS MIS MIS MIS MIS MIS MIS MIS MIS MIS
2 0 0 0 MIS MIS MIS MIS MIS MIS MIS MIS MIS MIS MIS MIS
3 0 0 0 MIS MIS MIS MIS MIS MIS MIS MIS MIS MIS MIS MIS
> dim(dat)
[1] 3 31
Можно, конечно, дать более информативные имена столбцам.
EDIT:
Как отмечает Джош в комментариях, мой аргумент what
был неправильного формата и заставлял все столбцы импортироваться как символ, а не как символ, а некоторые как числовой. Надо было читать:
dat <- data.frame(scan("data.txt",
what = list(character(), character(), numeric(), numeric(),
character(), numeric(), character(),
character(), character(), character(), character(),
character(), character(), character(), character(),
character(), character(), character(), character(),
character(), character(), character(), character(),
character(), character(), character(), character(),
character(), character(), character(), character()),
multi.line=TRUE))
names(dat) <- paste("V",1:ncol(dat),sep="")
, что дает более подходящее:
> str(dat)
'data.frame': 3 obs. of 31 variables:
$ V1 : Factor w/ 1 level "04001400": 1 1 1
$ V2 : Factor w/ 1 level "HI": 1 1 1
$ V3 : num 34.5 34.5 34.5
$ V4 : num 118 118 118
$ V5 : Factor w/ 3 levels "19480701","19480801",..: 1 2 3
$ V6 : num 8 8 8
$ V7 : Factor w/ 1 level "LST": 1 1 1
$ V8 : Factor w/ 1 level "0": 1 1 1
$ V9 : Factor w/ 1 level "0": 1 1 1
$ V10: Factor w/ 1 level "0": 1 1 1
$ V11: Factor w/ 1 level "0": 1 1 1
$ V12: Factor w/ 1 level "0": 1 1 1
$ V13: Factor w/ 1 level "0": 1 1 1
$ V14: Factor w/ 1 level "0": 1 1 1
$ V15: Factor w/ 1 level "0": 1 1 1
$ V16: Factor w/ 1 level "0": 1 1 1
$ V17: Factor w/ 1 level "0": 1 1 1
$ V18: Factor w/ 1 level "0": 1 1 1
$ V19: Factor w/ 1 level "0": 1 1 1
$ V20: Factor w/ 1 level "MIS": 1 1 1
$ V21: Factor w/ 1 level "MIS": 1 1 1
$ V22: Factor w/ 1 level "MIS": 1 1 1
$ V23: Factor w/ 1 level "MIS": 1 1 1
$ V24: Factor w/ 1 level "MIS": 1 1 1
$ V25: Factor w/ 1 level "MIS": 1 1 1
$ V26: Factor w/ 1 level "MIS": 1 1 1
$ V27: Factor w/ 1 level "MIS": 1 1 1
$ V28: Factor w/ 1 level "MIS": 1 1 1
$ V29: Factor w/ 1 level "MIS": 1 1 1
$ V30: Factor w/ 1 level "MIS": 1 1 1
$ V31: Factor w/ 1 level "MIS": 1 1 1