Hi, Petr,
from your example it's not doubtlessly clear to me sure how the sequence
of ifs should really be continued, but couldn't a nested loop help?
Something like:
for (i in 1:npks) {
plot(res[[i]]$x, res[[i]]$y, pch=20)
for (j in 1:i) {
lines(res[[i]]$x, res[[i]]$fitpk[j,], col=j, lwd=3)}
}
}
(However, this seems too simple ...)
Hth -- Gerrit
On Tue, 15 Dec 2015, PIKAL Petr wrote:
Dear all
I am stuck with output of some result. Sorry for not providing working
example but res is quite a big list and I believe you are able to
understand my problem.
I have npks variable, which can be anything from 1 to let say 5.
I get result called here res as a nested list with several components
and I want to plot these components based on npks value. I got this far
par(mfrow=c(npks,1)) # slit the device
for (i in 1:npks) {
plot(res[[i]]$x, res[[i]]$y, pch=20)
if (i ==1) { #lines in case npks==1
lines(res[[i]]$x, res[[i]]$fitpk[i,], col=i, lwd=3)}
if(i==2) { # lines in case npks ==2
lines(res[[i]]$x, res[[i]]$fitpk[1,], col=1, lwd=3)
lines(res[[i]]$x, res[[i]]$fitpk[i,], col=i, lwd=3)
}
I can follow this further and expand lines plotting with ifs but it
seems to me that there must be better solution I overlooked.
Here is a structure of res
str(res)
List of 2
$ :List of 15
..$ intnr : int 1
..$ x : Named num [1:153] 34.8 34.8 34.9 34.9 34.9 ...
.. ..- attr(*, "names")= chr [1:153] "2484" "2485" "2486" "2487" ...
..$ y : num [1:153] 3.08 -2.91 5.1 12.1 42.11 ...
..$ fit : num [1:153] 15.2 15.3 15.4 15.5 15.7 ...
..$ fitpk : num [1, 1:153] 2.35 2.49 2.65 2.81 2.99 ...
..$ basl : num [1:153] 258 258 258 258 258 ...
..$ baslchg: num [1:153] 12.8 12.8 12.7 12.7 12.7 ...
..$ rss : num 1354
..$ num.ker: int 1
..$ par : num [1:6] 12.8649 -0.0409 4549.1417 1.9927 66.939 ...
..$ parbl : Named num [1:2] 12.86 -4.09
.. ..- attr(*, "names")= chr [1:2] "" "2485"
..$ parpks : num [1, 1:5] 35.494 4549.142 715.324 0.129 1.993
.. ..- attr(*, "dimnames")=List of 2
.. .. ..$ : NULL
.. .. ..$ : chr [1:5] "loc" "height" "intens" "FWHM" ...
..$ accept : logi FALSE
..$ alpha : num 0.1
..$ thresh : Named num 3.81
.. ..- attr(*, "names")= chr "90%"
$ :List of 15
..$ intnr : int 1
..$ x : Named num [1:153] 34.8 34.8 34.9 34.9 34.9 ...
.. ..- attr(*, "names")= chr [1:153] "2484" "2485" "2486" "2487" ...
..$ y : num [1:153] 3.08 -2.91 5.1 12.1 42.11 ...
..$ fit : num [1:153] 15 15 15.1 15.1 15.2 ...
..$ fitpk : num [1:2, 1:153] 2.1329 0.0859 2.2666 0.0876 2.4109 ...
..$ basl : num [1:153] 258 258 258 258 258 ...
..$ baslchg: num [1:153] 12.8 12.7 12.6 12.5 12.4 ...
..$ rss : num 1325
..$ num.ker: num 2
..$ par : num [1:10] 12.8649 -0.0942 4540.4742 2.0373 66.9394 ...
..$ parbl : Named num [1:2] 12.86 -9.42
.. ..- attr(*, "names")= chr [1:2] "" "2485"
..$ parpks : num [1:2, 1:5] 35.5 35.9 4540.5 39.4 715.3 ...
.. ..- attr(*, "dimnames")=List of 2
.. .. ..$ : NULL
.. .. ..$ : chr [1:5] "loc" "height" "intens" "FWHM" ...
..$ accept : logi FALSE
..$ alpha : num 0.1
..$ thresh : Named num 3.81
.. ..- attr(*, "names")= chr "90%"
Best Regards
Petr
______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
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.