首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >参数化模式匹配作为R中的函数参数

参数化模式匹配作为R中的函数参数
EN

Stack Overflow用户
提问于 2014-08-30 08:45:59
回答 1查看 143关注 0票数 0

我有一个包含csv文件的目录,数量约为12k,命名格式为

代码语言:javascript
代码运行次数:0
运行
复制
 YYYY-MM-DD<TICK>.csv

<TICK>指的是一只股票的股票,如MSFT,GS,QQQ等,总共有500个不同长度的股票。我的目标是将所有的csv合并为一个特定的滴答,并将其保存为一个单独目录中的单个RData文件中的动物园对象。

为了实现自动化,我成功地完成了csv操作,设置为一个函数,将一个代码作为输入,完成所有的数据修改。但是我被困在文件列表阶段,传递模式来匹配正在处理的代码。我无法使模式匹配依赖于滴答器。

下面是我试图使之工作的函数,但不起作用:

代码语言:javascript
代码运行次数:0
运行
复制
csvlist2zoo <- function(symbol){
  csvlist=list.files(path = "D:/dataset/",pattern=paste("'.*?",symbol,".csv'",sep=""),full.names=T)
}

这是可行的,但不能使它在功能上工作。

代码语言:javascript
代码运行次数:0
运行
复制
csvlist2zoo <- function(symbol){
  csvlist=list.files(path = "D:/dataset/",pattern='.*?"ibm.csv',sep=""),full.names=T) 
}

在这样的搜索,有类似的问题,不完全符合我的要求。但是如果我错过了什么,请指出正确的方向。还在和霸王龙搏斗。

操作系统: Win8 64位,R版本-3.1.0(如果需要)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-08-30 09:10:12

尝试:

代码语言:javascript
代码运行次数:0
运行
复制
  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)中创建了一些文件。

代码语言:javascript
代码运行次数:0
运行
复制
 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

代码语言:javascript
代码运行次数:0
运行
复制
 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"
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25580642

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档