使用相同的代码一次为其他文件生成相同的图形
Posted
技术标签:
【中文标题】使用相同的代码一次为其他文件生成相同的图形【英文标题】:use the same code to generate same graphs for other files at once 【发布时间】:2011-10-03 06:32:39 【问题描述】:我已经为一个特定文件编写了代码,现在我想为其余类似的数据文件生成相同类型的图形和文件,我编写了如下命令,但是它不起作用。 .. 当我插入这些代码时,R 只为文件“8”生成了一个图,它说明了我的错误(见下文) 我已经多次编辑和检查我的代码,但仍然无法弄清楚它有什么问题......请你帮帮我吗?
非常感谢您的帮助!
my.files <- list.files()
for (i in 1: length(my.files))
temp.dat <- read.csv(my.files[i])
eight <- read.csv(file="8.csv", header=TRUE, sep=",")
eightout <- subset(eight, inout=="Outgoing from panel hh" & o_duration>0, select=c(inout, enc_callee, o_duration))
f <- function(eightoutf) nrow(eightoutf)
eightnocalls <- ddply(eightout,.(enc_callee),f)
colnames(eightnocalls)[2] <- "nocalls"
eightout$nocalls <- eightnocalls$nocalls [match(eightout$enc_callee, eightnocalls$enc_callee)]
eightout=data.frame(eightout,"time"=c(1:nrow(eightout)))
M <- plot(eightout$time,eightout$nocalls)
pdf(paste(Sys.Date(),"_",my.files[i],"_.pdf", sep=""))
plot(temp.dat$time, temp.dat$nocalls, main=my.files[i])
dev.off()
这就是 R 所说的 plot.window(...) 中的错误:需要有限的“xlim”值 另外:警告信息: 1:在 min(x) 中:min 没有非缺失参数;返回 Inf 2:在 max(x) 中:max 没有非缺失参数;返回-Inf 3:在 min(x) 中:min 没有非缺失参数;返回 Inf 4:在 max(x) 中:max 没有非缺失参数;返回 -Inf
【问题讨论】:
请参阅下面关于故障排除的评论。如果没有可重现的示例,就无法对其进行调试,并且尝试远程调试非常令人沮丧。您的代码实际上对我没有多大意义,因为它读取temp.dat
但似乎没有将它用于任何后续操作。恐怕我已经没有时间和耐心了……抱歉……
【参考方案1】:
尝试在您的plot
命令之后插入dev.off()
...? (如果你想要一堆单独的文件。如果你想要一个大的绘图文件,那么在开始循环之前打开你的 PDF 文件,并在循环结束后关闭它。)
使用上述代码的清理版本再次尝试。
my.files <- list.files("/E/Data")
for (i in seq_along(my.files))
temp.dat <- read.csv(my.files[i])
seven <- subset(alldata, aserno==7, select=c(I,C,D),
I=="o" & D>0)
sevennumber <- ddply(sevenout,.(C), nrow)
colnames(sevennumber)[2] <- "number"
sevenout$number <- sevennumber$number[match(sevenout$C,sevennumber$C)]
sevenout$time <- seq(nrow(sevenout))
pdf(paste(Sys.Date(), my.files[i], "M.pdf", sep="_"))
with(sevenout,plot(time, number, main=my.files[i])
dev.off() ## CLOSE pdf
write.csv(sevenout,paste(Sys.Date(),
my.files[i],"new_data.pdf”,sep="_"), row.names=FALSE)
剩余的怪事/问题:
tmp.datout
被引用但未定义。应该是sevenout
?
情节是用type="n"
制作的,这将导致一个空的情节框架。 ???
我假设操作是正确的,因为我无法重建它们。
如果有疑问,请尝试设置 i <- 1
并手动执行循环中的代码,看看会发生什么...
【讨论】:
不......它不起作用......R说“dev.off()中的错误:无法关闭一个设备(无效设备)” +1 我没有意识到它会将它们全部推送到分页文件中......谢谢。 @user,这是因为您已经打开了一个设备。键入 dev.off() 直到您将它们全部关闭。然后再次运行它 @ Brandon Bertelsen 抱歉,我不太明白...你是什么意思,我打开了一个设备?我应该关闭什么?我只打开过一次 R...(我是 R 新手,非常感谢您的耐心等待!) dev.off() 中的错误:无法关闭设备 1(空设备)??这是什么意思?以上是关于使用相同的代码一次为其他文件生成相同的图形的主要内容,如果未能解决你的问题,请参考以下文章
通过 ObjectOutputStream 发送相同但已修改的对象