我希望从一个网站导入100个文本文件,但是如何将它们整理成所需的格式。 这是数据示例:
NOTE: futures symbols begin with the character @
index symbols begin with the character $
Symbol (option symbols) hv20 hv50 hv100 DATE curiv Days/Percentile Close
****************************************************************
* Data generated by McMillan Analysis Corp. Copyright 2019 *
* www.optionstrategist.com 800-724-1817 *
****************************************************************
$BKX 22 18 22 190211 21.42 15/ 20%ile 91.76
$DJX 10 11 20 190322 16.24 600/ 84%ile 255.02
$HGX 16 15 23 190322 22.61 378/ 70%ile 286.36
$MNX
文件来自订阅网站,并保存为文本,例如。 vh_sym_20190322,如果有人可以帮助我,将不胜感激。 我不仅需要下载大容量文本文件,而且还需要将它们纠缠起来,这样我只有标题。 “ Symbol”,“ hv28”等,以及带有符号和数字的数据,例如“ $ BKX”,“ 22”等,再次感谢任何能提供帮助的人。 PS。我订阅了这些公司数据。
答案 0 :(得分:0)
假设文件就是这样,这可行:
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
似乎是一个组合单元,仅使用固定宽度读取就不那么容易清理了。