[未知用户]
我已经把
mystock函数改到可以返回值了,但是在我想对多个股票代码获取数据的时候,又出现问题了,请指教改如何解决。
新的函数
mystock2如下:
mystock2 = function(se.name,se.code){
eval(parse(text = sprintf("setSymbolLookup(%s = list(name = '%s', src='yahoo'))", se.name, se.code)))
assign(se.name,
get(getSymbols(Symbols = se.name,from="2015-10-07")),
envir= globalenv())
}
用它来对一只股票进行测试如下:
> mystock2("sz000002","000002.SZ")
> sz000002
000002.SZ.Open 000002.SZ.High 000002.SZ.Low 000002.SZ.Close
2015-10-07 12.73 12.73 12.73 12.73
2015-10-08 13.25 13.32 13.03 13.07
2015-10-09 13.13 13.28 13.07 13.23
2015-10-12 13.23 13.64 13.21 13.48
2015-10-13 13.41 13.56 13.35 13.47
2015-10-14 13.32 13.47 13.25 13.28
2015-10-15 13.30 13.56 13.28 13.52
2015-10-16 13.53 13.75 13.52 13.65
2015-10-19 13.70 13.70 13.40 13.53
2015-10-20 13.43 13.65 13.42 13.55
2015-10-21 13.55 13.61 13.20 13.23
2015-10-22 13.23 13.40 13.17 13.35
2015-10-23 13.36 13.80 13.31 13.74
000002.SZ.Volume 000002.SZ.Adjusted
2015-10-07 0 12.73
2015-10-08 82086200 13.07
2015-10-09 63450500 13.23
2015-10-12 78417100 13.48
2015-10-13 56889300 13.47
2015-10-14 54490400 13.28
2015-10-15 43805300 13.52
2015-10-16 50645200 13.65
2015-10-19 57448700 13.53
2015-10-20 40724600 13.55
2015-10-21 55800500 13.23
2015-10-22 45233400 13.35
2015-10-23 67564500 13.74
现在我打算对
codelist数据集里的所有股票代码使用
mystock2函数,每只股票的数据一起保存在一个列表中,这里用
plyr包中的
mlply函数。
codelist的结构和内容如下:
> str(codelist)
'data.frame': 6 obs. of 2 variables:
$ sename : chr "sz000001" "sz000002" "sz000004" "sz000005" ...
$ stockcode: chr "000001.SZ" "000002.SZ" "000004.SZ" "000005.SZ" ...
> codelist
sename stockcode
1 sz000001 000001.SZ
2 sz000002 000002.SZ
3 sz000004 000004.SZ
4 sz000005 000005.SZ
5 sz000006 000006.SZ
6 sz000007 000007.SZ
用
mlply获取每只股票的数据,代码如下:
> mlply(codelist,mystock2)
Error in (function (se.name, se.code) :
unused arguments (sename = "sz000001", stockcode = "000001.SZ")
这里说出现了unused arguments,请问这是怎么回事?该怎么解决?