Getsymbols从雅虎拿到的股票数据港股票有6列
因为收盘价本身可能不能完全反应股票的价值,比如现金分红股票分红,股票分割
1. 现金分红:股票的调整价格应该在收盘价的基礎上减掉现金分红的部分。比如XYZ公司收盘价是20块钱收盘后公司宣布会每股分红1.5块,那么股票调整价格就是18.50块(非常容易吧!)
2. 股票分紅:如果公司决定不分现金,而分给你股票比如公司宣布2:1的股票分红,也就是每一份股票会分给你两份新的股票(这只是个例子)那麼股票调整价格就是$20*(1/(2+1))=6.67块。
3. 股票分割:如果是2:1的股票分割那么意味着每一股会得到一股新的股票。那么股票调整价格就是$20*(1/(1x2))=10块
简单来说,調整价格能更好的反应出股票实际的价格
json是当下非常流行的数据港股票交換格式有着简单易用,易读(人和机器都容易)等特点目前挺流行的非关系型数据港股票库MongoDB就可以简单理解为一个json的容器,同时mysql(5.7以仩版本)postgresql等关系型数据港股票库也开始支持这一数据港股票结构。因此掌握关于json的一些知识很有必要,你可以访问它的来了解它的结構和在各种编程语言中的相应的库
当然,身为一个统计专业的学生我们接触到的数据港股票很多时候还是结构化的DataFrame格式,如果你想把這一格式的存储转换为json格式我在这里给大家推荐一个很好用的包--jsonlite。
jsonlite是专门用来转换读取和保存json文件的R包,按照作者的描述它提供了json囷R中常用数据港股票类型的双向转换功能,高效、简洁而且稳定根据我的使用体验,也确实如此闲言少叙,让我们进入正题
json文件的讀取可以用read_json()函数实现,这个函数的第二个参数 simplifyVector 如果设置为TRUE则json结构会被简化为向量,FALSE则会变为列表
2. json结构和R中原生数据港股票结构的相互转換
(1)jsonlite包中的fromJSON函数就是把json结构的数据港股票转换为R中常见数据港股票类型的工具与之相反,toJSON函数则是把R中原生的数据港股票结构转变为json具体的参数设定和二者的结构对应关系如下:
如果你的JSON结构本身就是一个简单的数组,那么用simplifyVector参数就能把它直接转换为向量
如果把这个參数设置为false那么就会转换为list。
数据港股票框转换JSON只要使用toJSON函数就行(空格和换行符在JSON里可以省略)
当 simplifyMatrix
参数被使用, 包含登场或者子数组的JSON數组就会变转化为矩阵或者更高阶的R数组:
同样地 toJSON()函数可以逆向实现上述过程:
只要数组的维数对应,就能很容易的把json简化为R中的多维數组
其实R中的json只是包含了特殊属性的字符串而已利用stringr包中的字符操作函数就能对json进行修改。
# 构建json对象的过程其实就暴露了它是字符串的實质
# 查看json对象的类型和存储模式
# 修改原有的json结构
我知道这个方法可能看起来有些怪但他能达到我们的目的。
如果你使用这个包提供的write_json()函數那么你保存的文件会包含大量的转义符''\'',而且换行缩进什么的也会以"\n"的符号形式存储
最终包括在文件里的就是这个包含了换行符和轉义字符的文件。如果你希望以上面打印出的友好格式来保存json可以用如下方法
cat()函数和dos命令一样,既可以在屏幕上打印文件也可以保存。当然建立一个connection也可以这就类似于python里open一个txt,再逐行写入最后close了。
关于R中jsonlite包的功能就分享到这里与我交流可以直接在下方留言。