[简介]
常用网名: 猪头三
出生日期: 1981.XX.XX
QQ联系: 643439947
个人网站: 80x86汇编小站 https://www.x86asm.org
编程生涯: 2001年~至今[共22年]
职业生涯: 20年
开发语言: C/C++、80x86ASM、PHP、Perl、Objective-C、Object Pascal、C#、Python
开发工具: Visual Studio、Delphi、XCode、Eclipse、C++ Builder
技能种类: 逆向 驱动 磁盘 文件
研发领域: Windows应用软件安全/Windows系统内核安全/Windows系统磁盘数据安全/macOS应用软件安全
项目经历: 磁盘性能优化/文件系统数据恢复/文件信息采集/敏感文件监测跟踪/网络安全检测
[序言]
为了后期文章的铺垫, 首先要学习一些基础的R语言编程技巧. 一个很重要的技术就是: R语言如何加载股票数据文件?
[list.files枚举文件]
假如有一个目录存着5000多只股票数据文件, 每一个文件代表一只股票, 并且命名格式为: 股票代码-股票名称.txt, 例如: 002431-棕榈股份, 那么可以利用list.files()来获取这些文件. 代码如下:
R
# 加载目标目录
stock_Files <- list.files(path = "C:/Users/Win11_PHT/Desktop/KLines/", pattern = "^[0-9]{6}-.+\\.txt$", full.names = TRUE)
# 创建一个6列空数据框
stock_Data_Total <- data.frame(matrix(ncol=6))
stock_Data_Total <- stock_Data_Total[-1,]
colnames(stock_Data_Total) <- c("Date", "O", "C", "H", "L", "VOL")
# 循环文件路径列表
for(stock_File_Item in stock_Files)
{
# 读取股票数据内容
File_Content <- read.table(stock_File_Item, header = FALSE, sep = "|")
# 确保列名相同
colnames(File_Content) <- c("Date", "O", "C", "H", "L", "VOL")
# 追加数据
stock_Data_Total <- rbind(stock_Data_Total, File_Content)
}
备注: 上面代码, 这里需要进一步描述清楚, 加载的股票数据, 是一个包含6列的数据. 每一列名称依次为: "Date", "O", "C", "H", "L", "VOL" (日期, 开盘价, 收盘价, 最高价, 最低价).
[结尾]
代码虽然简单, 但是这里还是有一些重要的细节要注意, list.files是支持正则表达式的, 如果你不清楚正则表达式, 那么建议还是要先学习这个技术.