我的情况:
- 我有许多 csv 文件,它们的后缀均相同,但文件名的前两个字符不同(即 AA01.csv、AB01.csv、AC01.csv 等)
- 我有一个 R 脚本,我想在每个文件上运行它。该文件本质上是从 .csv 中提取数据并将它们分配给向量/将它们转换为时间序列对象。 (例如,AA01 xts timeseries 对象、AB01 xts 对象)
我想实现什么:
- 将脚本嵌入到更大的循环中(或根据需要)以顺序运行每个文件并应用脚本
- 删除创建的中间对象(参见下面的代码片段)
- 给我留下从每个原始数据文件创建的最终 xts 对象(即 AA01 到 AC01 等作为值/向量等)
将该脚本嵌入到 R 中的正确方法是什么?抱歉,我是一个编程菜鸟!
我的脚本代码如下...每个 CSV 中每列的标题是日期、时间、值
# Pull in Data from the FileSystem and attach it
AA01raw<-read.csv("AA01.csv")
attach(AA01raw)
#format the data for timeseries work
cdt<-as.character(Date)
ctm<-as.character(Time)
tfrm<-timeDate(paste(cdt,ctm),format ="%Y/%m/%d %H:%M:%S")
val<-as.matrix(Value)
aa01tsobj<-timeSeries(val,tfrm)
#convert the timeSeries object to an xts Object
aa01xtsobj<-as.xts(tsobj)
#remove all the intermediate objects to leave the final xts object
rm(cdt)
rm(ctm)
rm(aa01tsobj)
rm(tfrm)
gc()
然后对每个 .csv 文件重复,直到提取所有 xts 对象。
也就是说,我们最终在 R 中为进一步的应用做好准备的是:
aa01xtsobj, ab01xtsobj, ac01xtsobj....etc
任何有关如何做到这一点的帮助将非常感激。
请务必使用卢比dir
命令生成文件名列表,而不是手动输入它们。
filenames = dir(pattern="*01.csv")
for( i in 1:length(filenames) )
{
...
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)