利用R一次性读取一个文件夹里的文件

浏览: 1909

今天碰到一个问题,要加载一个文件夹的文件,并且转存成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所设置的文件夹里的所有文件名给获取到,比如我的文件夹里的文件是酱汁的

Clipboard Image.png

dir函数会返回如下结果,因为我只需要前6个,所以dir()[1:6]Clipboard Image.png

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。

其他的都挺简单的

推荐 1
本文由 鸣人吃土豆 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

0 个评论

要回复文章请先登录注册