在名为 c:/files 的目录中更新了一堆文件。这些文件是包含 R ojects 的 R 数据文件。当我加载这些文件时,我会得到其中包含数据的不同对象。例如,如果我加载 opening.R 文件,我会得到诸如 opening.stock、opening.options、opening.bonds 等的对象。我喜欢加载每个 .R 文件并浏览它们并根据对象和创建图像它们作为文件名加上对象名.png。下面是我的代码,但它不是很有效。我可以加载文件并读取对象。但是当我尝试读取对象的内容时,它不起作用。任何想法,我做错了什么:
for (file in dir("c:\\files" ,pattern = "OPENING")){
load(file)
for (object in ls()) {
## if I like to see the content of the oject
## I do this
### print(oject)
### this does not work, it just prints oject, not the content of objects
png("file+ojbect.png")
plot(object)
dev.off()
}
}
我按照@Ben Bolker 的建议使用了get(oject),但我现在有另一个问题。我有一个日期列,我必须将其转换为 as.Date 并对其进行排序,以便它绘制得很好,如下所示:
x=as.data.frame(get(oject))
x$Date<- as.Date(x$Date, format="%Y-%m-%d")
x<- x[order(as.Date(x$Date, format="%Y-%m-%d")),]
我收到此错误:
Error in as.Date.default(x$Date, format = "%Y-%m-%d") :
do not know how to convert 'x$Date' to class "Date"
Calls: as.Date -> as.Date.default
Execution halted
我仍然有问题。第一次迭代工作,但是当涉及到第二个文件时,它会窒息:
suppressMessages(library(ggplot2))
suppressMessages(library(gridExtra))
suppressMessages(library(timeDate))
for (i in dir("c:\\tmp" ,pattern = "OPENNING")){
setwd("C:/tmp")
load(i)
print(i)
Sys.sleep(5)
for (object in ls()) {
x<-data.frame(get(object))
print(x)
x$Date<-as.Date(timeDate(x$Date))
x[order(x$Date),]
png((openning.png",sep="")
Plot(x)
dev.off()
}
}
错误:
Error in `$<-.data.frame`(`*tmp*`, "TimeStamp", value = numeric(0)) :
replacement has 0 rows, data has 7
Calls: $<- -> $<-.data.frame
Execution halted
如果您没有任何意见,请不要对我的帖子投反对票。我该怎么问这个问题。