今天碰到一个问题,要加载一个文件夹的文件,并且转存成csv格式,特将处理方法做个记录,代码如下
setwd("F:\\ddlc\\回款(回测使用)\\")
for(i in dir()[1:6]){
a <- substr(i,1,10)
load(i)
nf$发放时间 <- as.Date(a,format = '%Y-%m-%d')
write.csv(nf,file = paste0(a,'.csv'),row.names = FALSE,fileEncoding = 'gbk')
}
做个简单介绍
1.
setwd("F:\\ddlc\\回款(回测使用)\\") #将工作文件夹设定为函数里面的路径
2.
dir()函数会将setwd所设置的文件夹里的所有文件名给获取到,比如我的文件夹里的文件是酱汁的
dir函数会返回如下结果,因为我只需要前6个,所以dir()[1:6]
3.应该是我这次最大的收获
本来我的for循环代码是这样子的
for(i in dir()[1:6]){
load(i)
nf$发放时间 <- as.Date(substr(i,1,10),format = '%Y-%m-%d')
write.csv(nf,file = paste0(substr(i,1,10),'.csv'),row.names = FALSE,fileEncoding = 'gbk')
}
但是我发现当运行了load(i)之后,i变量就不是文件名了,比如本来i应该是"2018-05-28.RData",到
nf$发放时间 <- as.Date(substr(i,1,10),format = '%Y-%m-%d')
这一句的时候会变成2373,这个不知道是为啥(如果知道原因的小伙伴请告诉我一下哈,先谢谢啦),所以在load前面就先将i的结果保存下来,于是就有了在load前弄个变量a。
其他的都挺简单的