我有一个包含csv文件的目录,数量约为12k,命名格式为
YYYY-MM-DD<TICK>.csv
。<TICK>
指的是一只股票的股票,如MSFT,GS,QQQ等,总共有500个不同长度的股票。我的目标是将所有的csv合并为一个特定的滴答,并将其保存为一个单独目录中的单个RData文件中的动物园对象。
为了实现自动化,我成功地完成了csv操作,设置为一个函数,将一个代码作为输入,完成所有的数据修改。但是我被困在文件列表阶段,传递模式来匹配正在处理的代码。我无法使模式匹配依赖于滴答器。
下面是我试图使之工作的函数,但不起作用:
csvlist2zoo <- function(symbol){
csvlist=list.files(path = "D:/dataset/",pattern=paste("'.*?",symbol,".csv'",sep=""),full.names=T)
}
这是可行的,但不能使它在功能上工作。
csvlist2zoo <- function(symbol){
csvlist=list.files(path = "D:/dataset/",pattern='.*?"ibm.csv',sep=""),full.names=T)
}
在这样的搜索,有类似的问题,不完全符合我的要求。但是如果我错过了什么,请指出正确的方向。还在和霸王龙搏斗。
操作系统: Win8 64位,R版本-3.1.0(如果需要)
发布于 2014-08-30 09:10:12
尝试:
csvlist2zoo <- function(symbol){
list.files(pattern=paste0('\\d{4}-\\d{2}-\\d{2}',symbol, ".csv"))
}
csvlist2zoo("QQQ")
#[1] "2002-12-19QQQ.csv" "2008-01-25QQQ.csv"
csvlist2zoo("GS")
#[1] "2005-05-18GS.csv"
我在工作目录(linux)中创建了一些文件。
v1 <- c("2001-05-17MSFT.csv", "2005-05-18GS.csv", "2002-12-19QQQ.csv", "2008-01-25QQQ.csv")
lapply(v1, function(x) write.csv(1:3, file=x))
更新
使用paste
csvlist2zoo <- function(symbol){
list.files(pattern=paste('\\d{4}-\\d{2}-\\d{2}',symbol, ".csv", sep=""))
}
csvlist2zoo("QQQ")
#[1] "2002-12-19QQQ.csv" "2008-01-25QQQ.csv"
https://stackoverflow.com/questions/25580642
复制相似问题