Hi Mark Thats why I did all the examples in Sweave to pick up anything I could not understand in practice but it did not help very much It also gave me a quick reference as they are all bookmarked and are annotated
Duncan At 00:01 22/04/2012, you wrote: >Hi Duncan: Don't feel bad about it. I've read his book two or three times and >STILL find it all terribly confusing with many things going unexplained. >People say his book is so great but I don't have that opinion. > > Mark > > >On Sat, Apr 21, 2012 at 5:28 AM, Duncan Mackay ><<mailto:mac...@northnet.com.au>mac...@northnet.com.au> wrote: >Bert >I have read Deepayan's book and done all the examples but there is >no mention of panel.number and panel.groups in the books example. > >I just cannot get the fully meaning of what has been written >regarding passing arguments to panel functions. > >Regards > >Duncan > > > >At 14:31 21/04/2012, you wrote: >A comment... > >On Fri, Apr 20, 2012 at 8:32 PM, Duncan Mackay ><<mailto:mac...@northnet.com.au>mac...@northnet.com.au> wrote: > > Hi David, ilai > > > > The root cause of the problem is the passing of arguments to > panel functions > > to me and my colleagues. > > Just going through the archives there seems to be different ways for very > > similar/same outcomes and > > trying to get a pattern is hard to discern. > >Bad strategy! Trying to infer the rules from examples in complex >cases -- and as you said, different equivalent ways -- is nuts. You >need to read the docs carefully (including Deepayan's book, possibly) >and use the examples for understanding what is explained there. > >Finally, I don't know if this is relevant or helpful but: > >## this code works fine > xyplot(rnorm(5) ~ 1:5, type="l", > panel = function(...)panel.xyplot(...,lwd=2)) > >## This code throws an error about repeat lwd arguments. Is it obvious why? > xyplot(rnorm(5) ~ 1:5, lwd=1,type="l", > panel = function(...) panel.xyplot(...,lwd=2)) > >-- Bert > > > I frequently have to use the subscripts or group.number to access other > > data. > > I thought I had things sorted out in my head with the panel.groups and > > group.number but this has shattered it. > > > > Thanks > > > > Duncan > > > > At 12:15 21/04/2012, you wrote: > > > >> On Apr 20, 2012, at 9:14 PM, ilai wrote: > >> > >>> Oops - that is "reply all" > >>> On Fri, Apr 20, 2012 at 5:29 PM, David Winsemius > <<mailto:dwinsem...@comcast.net>dwinsem...@comcast.net > >>> > wrote: > >>>> > >>>> > >>>> I'm a bit puzzled by this exchange. I know there is a > >>>> 'panel.locfit', but > >>>> you two are spelling it differently. Can you explain why you are > >>>> doing so? > >>> > >>> > >>> Hi David, > >>> Thanks for stepping in. panel.Locfit is the OP's local function (or > >>> just a wrapper ?) which I believe is here > >>> > <http://www.mail-archive.com/r-help@r-project.org/msg167164.html>http://www.mail-archive.com/r-help@r-project.org/msg167164.html > >>> > >>> Note the two errors OP encountered (solved down the thread) were > >>> caused by the way he called the function in xyplot, not by > >>> panel.Locfit itself, which I did not modify. I guess now the issue is > >>> how to generalize panel.Locfit somehow, but I am not sure how. I > >>> suspect the problem is not my understanding but that there really > >>> isn't any one specific problem here for the list to solve, though, > >>> again, I am known for misinterpreting OP requests... :) > >>> > >>>>> ?panel.locfit > >>> > >>> > >>> As I said, I am unfamiliar with the package - but this doesn't > >>> surprise me. Thank you for pointing it out, wish you've noticed the > >>> exchange sooner... > >> > >> > >> Another puzzle. In the original posting there was this segment: > >> --- > >> but gives an error message without par.settings if i want to add > >> panel.Locfit(x,y,nn= 0.9,lwd = c(1,2,3), ...) > >> > >> Error using packet 1 > >> formal argument "Iwd" matched by multiple actual arguments > >> --- > >> > >> On my mailer that formal argument starts with a capital "I" but the > >> code seemed to be attempting a lowercase "l". > >> > >> I could never see reason offered for defining a new panel.locfit, but > >> I'm wondering if the sometimes similar representation of those two > >> different letters could be causing an obscure conflict? > >> > >> -- > >> David. > >>> > >>> > >>> Cheers > >>> > >>> > >>>>> ?panel.Locfit > >>>> > >>>> No documentation for 'panel.Locfit' in specified packages and > >>>> libraries: > >>>> you could try '??panel.Locfit' > >>>> > >>>>> ?panel.locfit > >>>> > >>>> > >>>> {locfit} R Documentation > >>>> Locfit panel function > >>>> > >>>> Description > >>>> > >>>> This panel function can be used to add locfit fits to plots > >>>> generated by > >>>> trellis. > >>>> > >>>> > >>>> > >>>>> I am trying to construct a function/s to cover as many of the normal > >>>>> situations as possible. > >>>>> Usually I have to amend colours lines etc to distinguish the data. > >>>>> > >>>>> I want to cover a number of situations > >>>>> 1 Conditioned by panel no groups > >>>>> 2 Conditioned by panel and groups. > >>>>> 3 Multiple values for above - to show colleagues (EDA) > >>>>> 4 Conditioned by panel and groups + an overall fit for all the > >>>>> data within > >>>>> a panel > >>>>> 5 Several y values in a panel eg Y1+Y2 and outer = FALSE with a > >>>>> fit for > >>>>> each of Y1 and Y2 > >>>>> > >>>>> I am trying to cover as many of the above situations in 1 function > >>>>> before > >>>>> resulting to trellis.focus or > >>>>> overlaying. The graphs that I normally create are not simple, > >>>>> generally > >>>>> involving useOuterStrips > >>>>> which may have different y scales for panel rows (combindeLimits/ > >>>>> manual) > >>>>> and different panel row heights. > >>>>> > >>>>> locfit is like loess but 2 arguments for smoothing; the degree of > >>>>> smoothing produced by the defaults > >>>>> is approximately that of loess but I normally need less smoothing > >>>>> (the > >>>>> same would be apply for loess). > >>>>> > >>>>> Most of the questions to Rhelp are for 1 with just a small number > >>>>> for 5 > >>>>> and they are not applicable here > >>>>> and understanding the requirements for passing arguments in these > >>>>> different situations I find difficult. > >>>>> I would like to reduce the number of panel functions to the > >>>>> minimum to > >>>>> cover the general situaltions because > >>>>> my graphs are usually not normal and then add to them for a > >>>>> particular > >>>>> situation. > >>>>> > >>>>> Regards > >>>>> > >>>>> Duncan > >>>>> > >>>>> > >>>>> At 01:38 21/04/2012, you wrote: > >>>>>> > >>>>>> > >>>>>> Duncan, > >>>>>> First off, I admit it is not clear to me what you are trying to > >>>>>> achieve and more importantly, why? by "why" I mean 1) I don't see > >>>>>> the > >>>>>> advantage of writing one general panel function for completely > >>>>>> different situations (one/multiple smoothers, grouping levels > >>>>>> etc.) 2) > >>>>>> your intended result as I understand it seems rather cluttered, > >>>>>> google > >>>>>> <chartjunk>. 3) I am unfamiliar with locfit package, but are we > >>>>>> reinventing the wheel here ? i.e. will modifying settings in > >>>>>> xyplot(y > >>>>>> ~x, xx, groups = Farm, type=c('p','smooth')) achieve the same ? > >>>>>> > >>>>>> With your initial reproducible example (thank you) it was easy to > >>>>>> eliminate the errors, but clearly the resulting plots are not > >>>>>> what you > >>>>>> intended (continue inline): > >>>>>> > >>>>>> On Thu, Apr 19, 2012 at 4:23 PM, Duncan Mackay > <<mailto:mac...@northnet.com.au>mac...@northnet.com.au > >>>>>> > > >>>>>> wrote: > >>>>>> <snip> > >>>>>>> > >>>>>>> 3. What I want to be able to add in the above is extra lines with > >>>>>>> different > >>>>>>> values of nn. > >>>>>>> I think I will have to modify panel.Locfit so that it goes > >>>>>>> through > >>>>>>> different values of nn in each of the panels and groups if I want > >>>>>>> different > >>>>>>> colours for extra lines with different nn values > >>>>>> > >>>>>> > >>>>>> Yes you could. There are several options: > >>>>>> add group.number to the arguments of panel.locfit and use it to > >>>>>> make > >>>>>> nn a vector, along the lines of > >>>>>> panel.foo <- function(x,y,group.number,theta,...){ > >>>>>> smpar <- theta[group.number] > >>>>>> panel.loess(x,y,smpar,...) > >>>>>> panel.xyplot(x,y,...) > >>>>>> } > >>>>>> > >>>>>> xyplot (y ~ x ,xx ,group > >>>>>> =Farm,theta=c(4,1,.4),panel=panel.superpose,panel.groups=panel.foo) > >>>>>> > >>>>>> # or > >>>>>> xyplot(y~x|Farm,xx,group=Padd,theta=c(.6,1), > >>>>>> panel=panel.superpose,panel.groups=panel.foo) > >>>>>> > >>>>>> Here you will need to modify the Farm group to 6 levels - 3*two > >>>>>> smoothers. > >>>>>> > >>>>>> You could make nn a list and loop over it inside the panel > >>>>>> function. > >>>>>> Looks like you tried something like that with specifying 2 > >>>>>> panel.Locfit, one suggestion to your code: > >>>>>> > >>>>>> panel.Locfit(x,y,...) # default 0.7 > >>>>>> panel.Locfit(x,y,nn=0.9) # i.e. remove the > >>>>>> ... to avoid clashes > >>>>>> > >>>>>> Finally, use ?trellis.focus to plot the second smoother "post-hoc". > >>>>>> also the latticeExtra package has many useful tools to create > >>>>>> layers > >>>>>> of the same (or different) plot with different settings. > >>>>>> > >>>>>>> 4 Produce an extra line for a fit for all the groups in 1/2+ > >>>>>>> panels. > >>>>>>> As for 3 but I do not know how to group all the x and y's for > >>>>>>> each > >>>>>>> of the > >>>>>>> panes using panel.groups > >>>>>> > >>>>>> > >>>>>> Why does it matter ? seems you have failed to learn the lesson from > >>>>>> the first post - the same functionality applies to 1 as to multiple > >>>>>> panels. Does each panel have a different grouping structure ? use > >>>>>> packet.number() for panels similar to group.number idea. > >>>>>> > >>>>>>> I need to do this and then scale up for a panel function to > >>>>>>> include > >>>>>>> confidence bands > >>>>>> > >>>>>> > >>>>>> than expand the xlim,ylim or scales in ?xyplot > >>>>>> > >>>>>>> > >>>>>>> For the record making Farm and Padd factors. With 1 panel and > >>>>>>> groups = > >>>>>>> Farm > >>>>>>> works with the extra line the same colour for its group > >>>>>>> a similar situation for the three panels when conditioned by > >>>>>>> Farm and > >>>>>>> groups > >>>>>>> = Pad > >>>>>> > >>>>>> > >>>>>> ???? > >>>>>> > >>>>>> Like I said I am a little lost on this problem but I hope this > >>>>>> helps > >>>>>> giving some direction. > >>>>>> Cheers > >>>>>> > >>>>>> > >>>>>>> > >>>>>>> xyplot(y ~x, xx, > >>>>>>> groups = Farm, > >>>>>>> > >>>>>>> par.settings = list(strip.background = list(col = > >>>>>>> "transparent"), > >>>>>>> superpose.line = list(col = > >>>>>>> c("black","grey"), > >>>>>>> lwd = > >>>>>>> c(1,2,3), > >>>>>>> lty = > >>>>>>> c(2,1,3)), > >>>>>>> superpose.symbol = list(cex = c(0.8, > >>>>>>> 0.7,0.7), > >>>>>>> col = > >>>>>>> c("red","black","blue"), > >>>>>>> pch = > >>>>>>> c(20,4,16)) > >>>>>>> ), > >>>>>>> auto.key=list(lines=T,points = T,rectangles=F), > >>>>>>> > >>>>>>> panel = panel.superpose, > >>>>>>> panel.groups=function(x,y, ...){ > >>>>>>> > >>>>>>> panel.xyplot(x,y,...) > >>>>>>> panel.Locfit(x,y,...) # default 0.7 > >>>>>>> panel.Locfit(x,y,nn=0.9,...) > >>>>>>> > >>>>>>> } > >>>>>>> ) ## xyplot > >>>>>>> > >>>>>>> > >>>>>>> Regards > >>>>>>> > >>>>>>> Duncan > >>>>>>> > >>>>>>> > >>>>>>> At 02:12 20/04/2012, you wrote: > >>>>>>>> > >>>>>>>> > >>>>>>>> On Thu, Apr 19, 2012 at 2:30 AM, Duncan Mackay > >>>>>>>> <<mailto:mac...@northnet.com.au>mac...@northnet.com.au> > >>>>>>>> wrote: > >>>>>>>>> > >>>>>>>>> Hi > >>>>>>>>> > >>>>>>>>> xyplot(y ~x|Farm,xx, > >>>>>>>>> groups = Padd, > >>>>>>>>> panel = panel.superpose, > >>>>>>>>> panel.groups=function(x,y, ...){ > >>>>>>>>> panel.Locfit(x,y,...) > >>>>>>>>> panel.xyplot(x,y,...) > >>>>>>>>> } > >>>>>>>>> ) ## xyplot > >>>>>>>>> > >>>>>>>>> The above works nicely and also without par.setting giving > >>>>>>>>> lattice > >>>>>>>>> defaults. > >>>>>>>>> The par.setting is handy for a lot of graphs that I do. > >>>>>>>>> > >>>>>>>>> But when I tried a 1 panel plot I get the error message. > >>>>>>>>> > >>>>>>>>> xyplot(y ~x,xx, > >>>>>>>>> groups = Farm, > >>>>>>>>> auto.key=TRUE, > >>>>>>>>> panel = function(x,y, ...){ > >>>>>>>>> > >>>>>>>>> panel.Locfit(x,y,...) > >>>>>>>>> panel.xyplot(x,y,...) > >>>>>>>>> } > >>>>>>>>> ) > >>>>>>>> > >>>>>>>> > >>>>>>>> These two plots are NOT THE SAME. Did you want the same as the > >>>>>>>> first > >>>>>>>> but with groups being Farm and Padd ignored ? in that case you > >>>>>>>> (again) > >>>>>>>> need a panel.groups: > >>>>>>>> > >>>>>>>> xyplot(y ~x,xx, > >>>>>>>> groups = Farm, > >>>>>>>> auto.key=TRUE, > >>>>>>>> panel = panel.superpose,panel.groups=function(x,y,...){ > >>>>>>>> panel.Locfit(x,y,...) > >>>>>>>> panel.xyplot(x,y,...) > >>>>>>>> } > >>>>>>>> ) > >>>>>>>> > >>>>>>>> > >>>>>>>>> If I want to plot another curve with different smoothing > >>>>>>>>> but gives an error message without par.settings if i want to add > >>>>>>>>> panel.Locfit(x,y,nn= 0.9,lwd = > >>>>>>>>> c(1,2,3), ...) > >>>>>>>>> > >>>>>>>>> Error using packet 1 > >>>>>>>>> formal argument "Iwd" matched by multiple actual arguments > >>>>>>>> > >>>>>>>> > >>>>>>>> It is all in the way you initially specified how to pass the > >>>>>>>> arguments > >>>>>>>> for panel.Locfit. This works without error: > >>>>>>>> > >>>>>>>> xyplot(y ~x,xx, > >>>>>>>> groups = Farm, > >>>>>>>> auto.key=TRUE,lwd=1:3, > >>>>>>>> panel = panel.superpose,panel.groups=function(x,y,nn,...){ > >>>>>>>> panel.Locfit(x,y,nn=.9,...) > >>>>>>>> panel.xyplot(x,y,...) > >>>>>>>> } > >>>>>>>> ) > >>>>>>>> > >>>>>>>> > >>>>>>>> HTH > >>>>>>>> > >>>>>>>> > >>>>>>>> > >>>>>>>>> I also need to plot a smoothed line for all groups trying > >>>>>>>>> groups, > >>>>>>>>> subscripts > >>>>>>>>> and panel.groups as arguments without success > >>>>>>>>> > >>>>>>>>> Any solutions to solve the above will be gratefully received and > >>>>>>>>> faithfully > >>>>>>>>> applied. > >>>>>>>>> > >>>>>>>>> Duncan > >>>>>>>>> > >>>>>>>>> sessionInfo() > >>>>>>>>> R version 2.15.0 (2012-03-30) > >>>>>>>>> Platform: i386-pc-mingw32/i386 (32-bit) > >>>>>>>>> > >>>>>>>>> locale: > >>>>>>>>> [1] LC_COLLATE=English_Australia.1252 > >>>>>>>>> LC_CTYPE=English_Australia.1252 > >>>>>>>>> LC_MONETARY=English_Australia.1252 LC_NUMERIC=C > >>>>>>>>> LC_TIME=English_Australia.1252 > >>>>>>>>> > >>>>>>>>> attached base packages: > >>>>>>>>> [1] datasets utils stats graphics grDevices grid > >>>>>>>>> methods > >>>>>>>>> base > >>>>>>>>> > >>>>>>>>> other attached packages: > >>>>>>>>> [1] locfit_1.5-7 R.oo_1.9.3 R.methodsS3_1.2.2 > >>>>>>>>> foreign_0.8-49 > >>>>>>>>> chron_2.3-42 MASS_7.3-17 latticeExtra_0.6-19 > >>>>>>>>> RColorBrewer_1.0-5 > >>>>>>>>> [9] lattice_0.20-6 > >>>>>>>>> > >>>>>>>>> loaded via a namespace (and not attached): > >>>>>>>>> [1] tools_2.15.0 > >>>>>>>>> > >>>>>>>>> > >>>> > >>>> > >>>> > >>>> David Winsemius, MD > >>>> West Hartford, CT > >>>> > >>>> > >>>> ______________________________________________ > >>>> <mailto:R-help@r-project.org>R-help@r-project.org mailing list > >>>> > <https://stat.ethz.ch/mailman/listinfo/r-help>https://stat.ethz.ch/mailman/listinfo/r-help > >>>> PLEASE do read the posting guide > >>>> > <http://www.R-project.org/posting-guide.html>http://www.R-project.org/posting-guide.html > >>>> and provide commented, minimal, self-contained, reproducible code. > >> > >> > >> David Winsemius, MD > >> West Hartford, CT > >> > > > > ______________________________________________ > > <mailto:R-help@r-project.org>R-help@r-project.org mailing list > > > <https://stat.ethz.ch/mailman/listinfo/r-help>https://stat.ethz.ch/mailman/listinfo/r-help > > PLEASE do read the posting guide > <http://www.R-project.org/posting-guide.html>http://www.R-project.org/posting-guide.html > > and provide commented, minimal, self-contained, reproducible code. > > > >-- > >Bert Gunter >Genentech Nonclinical Biostatistics > >Internal Contact Info: >Phone: 467-7374 >Website: ><http://pharmadevelopment.roche.com/index/pdb/pdb-functional-groups/pdb-biostatistics/pdb-ncb-home.htm>http://pharmadevelopment.roche.com/index/pdb/pdb-functional-groups/pdb-biostatistics/pdb-ncb-home.htm > > >______________________________________________ ><mailto:R-help@r-project.org>R-help@r-project.org mailing list ><https://stat.ethz.ch/mailman/listinfo/r-help>https://stat.ethz.ch/mailman/listinfo/r-help >PLEASE do read the posting guide ><http://www.R-project.org/posting-guide.html>http://www.R-project.org/posting-guide.html >and provide commented, minimal, self-contained, reproducible code. > [[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.