Dear helpers,

 

In an attempt to use a loop to generate graphs in a for loop in run into
a problem. The plan is to fill each page with eight graphs (mfrow =
c(4,2)) in to two columns. Only the buttom graphs ( meaning every fourth
graph) have  tick labels on the x  axis to preserve space. I used an if
.... Else statement to achieve that.  

The problem is that the first eight graphs are skipped when I run the
loop, the other graphs are fine.  However, all graphs can be generated
individually. This indicates that the data sets are fine.

 

 

Pulling the results from a nonlinear regression to more than 90 data
sets from a list (resultslist[[i]])

Generating the first derivative and multiply it by 100 to adjust for the
scale. 

 

Here is the code. 

 

pdf('F:/diffnormal_16001a.pdf')
par(mfcol = c(4,2))
for(i in 1: 92){
    fit  <-  NULL
    der <-  NULL
    Zeit  <- NULL
    Zeit <- seq(0,300)
    try(guess <- predict(resultslist_1600[[i]]) )
    if(class(guess) == "try-error") {next}
    fit <- smooth.spline(Zeit, guess)
    der <- 100*(predict(fit, Zeit, deriv = 1))$y
  if((i/4)%%1 ==0){par(mar =c(4,4,0, 0) + 0.1)}
  else{par(mar =c(0,4,0, 0) + 0.1)}
  leg = paste("Data_", i,sep = "")
  plot(resultslist_1600[[i]], type = "all", pch = ".", ylab = "Signal",
log = "", axes = F)
  lines(Zeit, der)
  if((i/4)%%1 ==0){axis(1, at = seq(0, 360, length = 6), label = c(),
font = 2)}
  axis(2, at =
pretty(na.omit(eval(parse(text=paste("bleeder1600[,",i,"]",sep =""))))),
label = c())
  mtext(side = 3, leg, line = -2)}

 

I understand, that I am supposed to submit working code. However, I deal
with a fairly comprehensive data set and I have to generate a large list
using another R package. Thus I explain what it does:

 

Generate time points(Zeit <- seq(0,300)

Pulling the results from a nonlinear regression to more than 90 data
sets from a list (resultslist_1600[[i]])

Test if prediction can be done

try(guess <- predict(resultslist_1600[[i]]) )
    if(class(guess) == "try-error") {next}
(it turned out it can be done for all data set, as I am able to generate
the graphs for each data set from the command line individually.

Generating the first derivative and multiply it by 100 to adjust for the
scale. 

fit <- smooth.spline(Zeit, guess)

der <- 100*(predict(fit, Zeit, deriv = 1))$y

 

The problem appears to be hidden in the mfrow statement.

I spent quite a bit of time on this problem, thus any help or new ideas
would be very much appreciated.

 

Thank you

 

Andreas Betz

Scientist

andreasbetz@ Dear helpers,

 

In an attempt to use a loop to generate graphs in a for loop in run into
a problem. The plan is to fill each page with eight graphs (mfrow =
c(4,2)) in to two columns. Only the buttom graphs ( meaning every fourth
graph) have  tick labels on the x  axis to preserve space. I used an if
.... Else statement to achieve that.  

The problem is that the first eight graphs are skipped when I run the
loop, the other graphs are fine.  However, all graphs can be generated
individually. This indicates that the data sets are fine.

 

 

Pulling the results from a nonlinear regression to more than 90 data
sets from a list (resultslist[[i]])

Generating the first derivative and multiply it by 100 to adjust for the
scale. 

 

Here is the code. 

 

pdf('F:/diffnormal_16001a.pdf')
par(mfcol = c(4,2))
for(i in 1: 92){
    fit  <-  NULL
    der <-  NULL
    Zeit  <- NULL
    Zeit <- seq(0,300)
    try(guess <- predict(resultslist_1600[[i]]) )
    if(class(guess) == "try-error") {next}
    fit <- smooth.spline(Zeit, guess)
    der <- 100*(predict(fit, Zeit, deriv = 1))$y
  if((i/4)%%1 ==0){par(mar =c(4,4,0, 0) + 0.1)}
  else{par(mar =c(0,4,0, 0) + 0.1)}
  leg = paste("Data_", i,sep = "")
  plot(resultslist_1600[[i]], type = "all", pch = ".", ylab = "Signal",
log = "", axes = F)
  lines(Zeit, der)
  if((i/4)%%1 ==0){axis(1, at = seq(0, 360, length = 6), label = c(),
font = 2)}
  axis(2, at =
pretty(na.omit(eval(parse(text=paste("bleeder1600[,",i,"]",sep =""))))),
label = c())
  mtext(side = 3, leg, line = -2)}

 

I understand, that I am supposed to submit working code. However, I deal
with a fairly comprehensive data set and I have to generate a large list
using another R package. Thus I explain what it does:

 

Generate time points(Zeit <- seq(0,300)

Pulling the results from a nonlinear regression to more than 90 data
sets from a list (resultslist_1600[[i]])

Test if prediction can be done

try(guess <- predict(resultslist_1600[[i]]) )
    if(class(guess) == "try-error") {next}
(it turned out it can be done for all data set, as I am able to generate
the graphs for each data set from the command line individually.

Generating the first derivative and multiply it by 100 to adjust for the
scale. 

fit <- smooth.spline(Zeit, guess)

der <- 100*(predict(fit, Zeit, deriv = 1))$y

 

The problem appears to be hidden in the mfrow statement.

I spent quite a bit of time on this problem, thus any help or new ideas
would be very much appreciated.

 

Thank you

 

Andreas Betz

Scientist

andreasb...@earthlink.net <mailto:andreasb...@earthlink.net> 

 

 


        [[alternative HTML version deleted]]

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to