Предполагая, что файл просто так , это работает:
cn <- read.fwf("~/Downloads/foo.txt", c(34, 4, 6, 6, 8, 8, 16, 6), skip=3, comment.char="*", header=F, n=1)
cn
# V1 V2 V3 V4 V5 V6 V7
# 1 Symbol (option symbols) hv20 hv50 hv100 DATE curiv Days/Percentile
# V8
# 1 Close
cn <- make.names(trimws(unlist(cn)))
cn
# [1] "Symbol..option.symbols." "hv20" "hv50"
# [4] "hv100" "DATE" "curiv"
# [7] "Days.Percentile" "Close"
dat <- read.fwf("~/Downloads/foo.txt", c(34, 4, 6, 6, 8, 8, 16, 6), skip=4, comment.char="*", header=FALSE)
colnames(dat) <- cn
str(dat)
# 'data.frame': 3 obs. of 8 variables:
# $ Symbol..option.symbols.: Factor w/ 3 levels "$BKX ",..: 1 2 3
# $ hv20 : int 22 10 16
# $ hv50 : int 18 11 15
# $ hv100 : int 22 20 23
# $ DATE : int 190211 190322 190322
# $ curiv : num 21.4 16.2 22.6
# $ Days.Percentile : Factor w/ 3 levels " 15/ 20%ile ",..: 1 3 2
# $ Close : num 91.8 255 286.4
Возможно, вы захотите обновить имена столбцов и / или включить stringsAsFactors=FALSE
. После этого у вас будет небольшая очистка данных, например, Days.Percentile
выглядит как комбинированная ячейка, которая была менее тривиальна для очистки с использованием только чтения фиксированной ширины.