[原创][R语言]股票分析实战[7]:时间转换 与 股票涨幅计算

[简介]

常用网名: 猪头三

出生日期: 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应用软件安全

项目经历: 磁盘性能优化/文件系统数据恢复/文件信息采集/敏感文件监测跟踪/网络安全检测

[序言]

在股票数据分析中, 有时需要把"年/月/日"时间转换为"周内第N天" 和 计算收盘价的涨幅 这2个是非常有用的的技巧, 对统计分析很有帮助.

[转换代码1: "年/月/日"时间转换为"周内第N天"]

假如有一个数据框stock_demo包含一个Date列, 内容是整型的时间数字, 比如:

20231229

20231228

20231227

20231225

20231222

20231221

20231220

20231219

20231218

20231215

R 复制代码
# 针对Date列转换为周内第几天, 并追加新的数据列DW
stock_Date <- as.Date(as.character(stock_demo$Date), format = "%Y%m%d")
stock_Days <- as.integer(format(stock_Date, "%u"))

# 把"周内第几天"的数据重新绑到stock_demo
stock_demo$Days <- as.character(stock_Days)

[转换代码2: 计算收盘价的涨幅]

假如有一个数据框stock_demo包含一个C列, 内容是浮点型的收盘价, 比如:

2.47

2.38

2.34

2.36

2.39

2.44

2.42

2.46

2.46

2.50

2.53

2.50

2.51

2.48

2.43

2.51

R 复制代码
# 针对收盘价计算涨幅, 并追加新的数据列RC
# 计算涨幅之后, 由于行数不匹配, 因此需要NA进行扩充
c_Rise <- with(stock_demo, round(((C[-length(C)] - C[-1]) / C[-1])*100, 2))
c_Rise <- c(c_Rise, rep(NA, nrow(stock_demo)-length(c_Rise)))
C_Rise_Int <- as.integer(c_Rise)
stock_demo <- cbind(stock_demo, RC = c_Rise)
stock_demo <- cbind(stock_demo, RCI = C_Rise_Int)

# 整理新的数据框(去掉包含由NA的行)
stock_Data <- na.omit(stock_demo)

[结尾]

这2个代码技巧, 都是高频率的, 希望对大家都有帮助.

相关推荐
MXsoft6181 分钟前
监控易一体化运维:巧用排班管理,提升运维协同效能
大数据·服务器·数据库
小研学术43 分钟前
如何开展有组织的AI素养教育?
大数据·人工智能·ai·大模型·deepseek·ai素养
TracyCoder1231 小时前
ElasticSearch深入解析(五):如何将一台电脑上的Elasticsearch服务迁移到另一台电脑上
大数据·elasticsearch·jenkins
Lucky GGBond1 小时前
解决 Elasticsearch 启动错误:failed to obtain node locks
大数据·elasticsearch·搜索引擎
zoujiahui_20181 小时前
R中实现数值求导的包numDeriv
r语言
柳如烟@2 小时前
Hadoop伪分布式模式搭建全攻略:从环境配置到实战测试
大数据·hadoop·分布式·mysql
曾经的三心草2 小时前
Git-基本操作
大数据·git·elasticsearch
反方向的空6 小时前
GIt基本操作
大数据·git·elasticsearch
Leo.yuan8 小时前
数据仓库建设全解析!
大数据·数据库·数据仓库·数据分析·spark