我是 R 新手,刚刚开始使用它。我目前正在尝试 quantmod 包。
quantmod 包似乎可以完成我想做的大部分事情,但是,我不想使用 getSymbols() 函数将数据获取到 R 中。相反,我想使用我自己的数据 - 存储为本地磁盘上的 csv 文件。
我希望能够从 CSV 文件中获取数据以与 quantmod 一起使用。我来了阿克罗斯本文,它展示了如何读取 CSV 文件以与 quantmod 一起使用,但我不喜欢它,至少有两个原因:
它会在加载到 quantmod 之前将新的(重新格式化的)CSV 文件写入光盘。我更愿意使用 R 在内存中进行任何必要的修改。
CSV 文件具有列标题。我的数据没有列标题。相反,这些字段位于预定的固定列位置(与雅虎财经数据表采用的“标准”格式匹配)。
我还没有设法计算出返回的数据类型获取符号()功能。我期望它返回一个数据框,但是当我检查它的类时,它被识别为一个字符向量 - 我发现这非常令人惊讶(坦率地说,不相信,因为我能够从包含的数据中绘制条形图在变量中):
yhoo <- getSymbols("YHOO",src="google")
class(yhoo)
[1] "character"
> yhoo
[1] "YHOO"
如果有人能够展示如何编写一个小型 R 函数(很可能是 read.csv 的包装器),该函数将从我的 CSV 文件中读取数据并将其作为 R 对象(数据框?)返回以与 quantmod 一起使用,我将不胜感激。
这是一些伪代码,解释了我想要做什么:
# in case I need some funcs here for creating data type returned by function
library(quantmod)
loadCSVDataFile <- function(full_pathname){
csvdata <- read.csv(full_pathname, header=FALSE,sep=",")
dates <- csvdata[,1]
op <- csvdata[,2]
hi <- csvdata[,3]
lo <- csvdata[,4]
cl <- csvdata[,5]
vol <- csvdata[,6]
oi <- csvdata[,7]
# Now combine columns into a data type that matches that returned by the
# getSymbols() ....
# return(dataset)
}
[[更新]]
我使用迄今为止给出的答案,STLL 未能使其正常工作......:
> gbpusd <- as.xts(read.zoo('/path/to/gbpusd.csv', header=FALSE))
> class (gbpusd)
[1] "xts" "zoo"
> barChart(gbpusd)
Error in `[.xts`(x, xsubset) : subscript out of bounds
> gbpusd2 <- getSymbols.csv('gbpusd',,'/path/to/')
Error in missing(verbose) : 'missing' can only be used for arguments
>
> gbpusd2 <- getSymbols.csv('gbpusd',.GlobalEnv,'/path/to/')
Error in missing(verbose) : 'missing' can only be used for arguments
>
>
> gbpusd2 <- getSymbols.csv('gbpusd','.GlobalEnv','/path/to/')
Error in missing(verbose) : 'missing' can only be used for arguments
>
> gbpusd2 <- getSymbols.csv('gbpusd',env,'/path/to/')
Error in missing(verbose) : 'missing' can only be used for arguments
我究竟做错了什么?