bickis m@iii@g oii m@th@us@sk@c@
2019-Nov-24 23:06 UTC
[R] Why don't the comments appear in the function?
I have made a list in which each element is a function. If I print individual elements of the list, then the function code is shown along with embedded comments. However, if I print the list or sublist, then the function code is shown without comments. Why (and how) are the comments hidden?>flist[[3]]function(y,brackets,rates){ # Calculates before-tax income required to realized value y ints<-c(0,cumsum(diff(brackets)*rates[1:(length(rates)-1)]))-brackets*rates x<-(y+ints)/(1-rates) x[sum(x>brackets)] }>flist[3]$btv function (y, brackets, rates) { ints <- c(0, cumsum(diff(brackets) * rates[1:(length(rates) - 1)])) - brackets * rates x <- (y + ints)/(1 - rates) x[sum(x > brackets)] } I am running R 3.3.2 on Mac OS X 10.10.5 Mik Bickis
I do not see this behavior. f <- function(x){ ## a comment 2 } g <- list(a =2, fun =f)> g$a [1] 2 $fun function(x){ ## a comment 2 }> g[[2]]function(x){ ## a comment 2 }> g[2]$fun function(x){ ## a comment 2 } Cheers, Bert Bert Gunter "The trouble with having an open mind is that people keep coming along and sticking things into it." -- Opus (aka Berkeley Breathed in his "Bloom County" comic strip ) On Mon, Nov 25, 2019 at 7:03 AM <bickis at math.usask.ca> wrote:> I have made a list in which each element is a function. If I print > individual elements of the list, then the function code is shown along > with embedded comments. However, if I print the list or sublist, then the > function code is shown without comments. Why (and how) are the comments > hidden? > > >flist[[3]] > function(y,brackets,rates){ > # Calculates before-tax income required to realized value y > > ints<-c(0,cumsum(diff(brackets)*rates[1:(length(rates)-1)]))-brackets*rates > x<-(y+ints)/(1-rates) > x[sum(x>brackets)] > } > > > >flist[3] > $btv > function (y, brackets, rates) > { > ints <- c(0, cumsum(diff(brackets) * rates[1:(length(rates) - > 1)])) - brackets * rates > x <- (y + ints)/(1 - rates) > x[sum(x > brackets)] > } > > I am running R 3.3.2 on Mac OS X 10.10.5 > > Mik Bickis > > ______________________________________________ > R-help at 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. >[[alternative HTML version deleted]]
bickis m@iii@g oii m@th@us@sk@c@
2019-Nov-25 17:40 UTC
[R] Why don't the comments appear in the function?
Different version of R perhaps? Or is there something in my environment or "preferences" that is different? Here's what I get with your example.> f <- function(x){+ ## a comment + 2 + }> g <- list(a =2, fun =f) > g$a [1] 2 $fun function (x) { 2 }> g[[2]]function(x){ ## a comment 2 }> g[1]$a [1] 2 Mik> I do not see this behavior. > > f <- function(x){ > ## a comment > 2 > } > > g <- list(a =2, fun =f) > >> g > $a > [1] 2 > > $fun > function(x){ > ## a comment > 2 > } > >> g[[2]] > function(x){ > ## a comment > 2 > } >> g[2] > $fun > function(x){ > ## a comment > 2 > } > > Cheers, > Bert > > Bert Gunter > > "The trouble with having an open mind is that people keep coming along and > sticking things into it." > -- Opus (aka Berkeley Breathed in his "Bloom County" comic strip ) > > > On Mon, Nov 25, 2019 at 7:03 AM > <bickis at math.usask.ca<mailto:bickis at math.usask.ca>> wrote: > I have made a list in which each element is a function. If I print > individual elements of the list, then the function code is shown along > with embedded comments. However, if I print the list or sublist, then the > function code is shown without comments. Why (and how) are the comments > hidden? > >>flist[[3]] > function(y,brackets,rates){ > # Calculates before-tax income required to realized value y > ints<-c(0,cumsum(diff(brackets)*rates[1:(length(rates)-1)]))-brackets*rates > x<-(y+ints)/(1-rates) > x[sum(x>brackets)] > } > > >>flist[3] > $btv > function (y, brackets, rates) > { > ints <- c(0, cumsum(diff(brackets) * rates[1:(length(rates) - > 1)])) - brackets * rates > x <- (y + ints)/(1 - rates) > x[sum(x > brackets)] > } > > I am running R 3.3.2 on Mac OS X 10.10.5 > > Mik Bickis > > ______________________________________________ > R-help at r-project.org<mailto:R-help at 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. >
On 24/11/2019 6:06 p.m., bickis at math.usask.ca wrote:> I have made a list in which each element is a function. If I print > individual elements of the list, then the function code is shown along > with embedded comments. However, if I print the list or sublist, then the > function code is shown without comments. Why (and how) are the comments > hidden?Hi Mik. I see the same behaviour as Bert, not what you see. Generally the comments will be shown if the "srcref" attribute is attached to the function, and it is a valid one. That shouldn't change between looking at flist[[3]] and flist[3]. If it's not there or not valid, you'll see a deparsed version of the function; that's what your flist[3]$btv looks like. It's possible this is R 3.3.2-specific; that's a relatively old version now, but I don't know of any change that would cause this. Can you show us the code that you used to create flist, or enough of it to show this behaviour? Showing us (or me privately) dput(flist) might be enough to see what's going on. Duncan Murdoch> >> flist[[3]] > function(y,brackets,rates){ > # Calculates before-tax income required to realized value y > ints<-c(0,cumsum(diff(brackets)*rates[1:(length(rates)-1)]))-brackets*rates > x<-(y+ints)/(1-rates) > x[sum(x>brackets)] > } > > >> flist[3] > $btv > function (y, brackets, rates) > { > ints <- c(0, cumsum(diff(brackets) * rates[1:(length(rates) - > 1)])) - brackets * rates > x <- (y + ints)/(1 - rates) > x[sum(x > brackets)] > } > > I am running R 3.3.2 on Mac OS X 10.10.5 > > Mik Bickis > > ______________________________________________ > R-help at 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. >
Hi Mik, Echoing Bert and Duncan's suggestions, please see also ?srcref and ?getSrcref and consider upgrading to a currently supported version of R. I'd also call out the "keep.source" installation option as important if your functions are inside a package - there is some discussion around this at https://github.com/DeclareDesign/DesignLibrary/issues/50 and linked issues from the last time I encountered this weird corner of R. If anyone finds a better solution (or for the related problem of preserving whitespace), I would be interested as well. Very respectfully, Neal Fultz On Mon, Nov 25, 2019 at 10:49 AM Duncan Murdoch <murdoch.duncan at gmail.com> wrote:> On 24/11/2019 6:06 p.m., bickis at math.usask.ca wrote: > > I have made a list in which each element is a function. If I print > > individual elements of the list, then the function code is shown along > > with embedded comments. However, if I print the list or sublist, then > the > > function code is shown without comments. Why (and how) are the comments > > hidden? > > Hi Mik. I see the same behaviour as Bert, not what you see. > > Generally the comments will be shown if the "srcref" attribute is > attached to the function, and it is a valid one. That shouldn't change > between looking at flist[[3]] and flist[3]. If it's not there or not > valid, you'll see a deparsed version of the function; that's what your > flist[3]$btv looks like. > > It's possible this is R 3.3.2-specific; that's a relatively old version > now, but I don't know of any change that would cause this. Can you show > us the code that you used to create flist, or enough of it to show this > behaviour? Showing us (or me privately) dput(flist) might be enough to > see what's going on. > > Duncan Murdoch > > > > >> flist[[3]] > > function(y,brackets,rates){ > > # Calculates before-tax income required to realized value y > > > ints<-c(0,cumsum(diff(brackets)*rates[1:(length(rates)-1)]))-brackets*rates > > x<-(y+ints)/(1-rates) > > x[sum(x>brackets)] > > } > > > > > >> flist[3] > > $btv > > function (y, brackets, rates) > > { > > ints <- c(0, cumsum(diff(brackets) * rates[1:(length(rates) - > > 1)])) - brackets * rates > > x <- (y + ints)/(1 - rates) > > x[sum(x > brackets)] > > } > > > > I am running R 3.3.2 on Mac OS X 10.10.5 > > > > Mik Bickis > > > > ______________________________________________ > > R-help at 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. > > > > ______________________________________________ > R-help at 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. >[[alternative HTML version deleted]]