[Rd] Bug in the "reformulate" function in stats package
Martin Maechler
m@ech|er @end|ng |rom @t@t@m@th@ethz@ch
Thu Apr 4 08:21:48 CEST 2019
>>>>> Ben Bolker
>>>>> on Fri, 29 Mar 2019 12:34:50 -0400 writes:
> I suspect that the issue is addressed (obliquely) in the examples,
> which shows that variables with spaces in them (or otherwise
> 'non-syntactic', i.e. not satisfying the constraints of legal R symbols)
> can be handled by protecting them with backticks (``)
> ## using non-syntactic names:
> reformulate(c("`P/E`", "`% Growth`"), response = as.name("+-"))
> It seems to me there could be room for a *documentation* patch (stating
> explicitly that if termlabels has length > 1 its elements are
> concatenated with "+", and explicitly stating that non-syntactic names
> must be protected with back-ticks). (There is a little bit of obscurity
> in the fact that the elements of termlabels don't have to be
> syntactically valid names: many will be included in formulas if they can
> be interpreted as *parseable* expressions, e.g. reformulate("x<2"))
> I would be happy to give it a shot if the consensus is that it would
> be worthwhile.
I think it would be worthwhile to add to the docs a bit.
[With currently just your and my vote, we have a 100% consensus
;-)]
Martin
> One workaround to the OP's problem is below (may be worth including
> as an example in docs)
>> z <- c("a variable","another variable")
>> reformulate(z)
> Error in parse(text = termtext, keep.source = FALSE) :
> <text>:1:6: unexpected symbol
> 1: ~ a variable
> ^
>> reformulate(sprintf("`%s`",z))
> ~`a variable` + `another variable`
> On 2019-03-29 11:54 a.m., J C Nash wrote:
>> The main thing is to post the "small reproducible example".
>>
>> My (rather long term experience) can be written
>>
>> if (exists("reproducible example") ) {
>> DeveloperFixHappens()
>> } else {
>> NULL
>> }
>>
>> JN
>>
>> On 2019-03-29 11:38 a.m., Saren Tasciyan wrote:
>>> Well, first I can't sign in bugzilla myself, that is why I wrote here first. Also, I don't know if I have the time at
>>> the moment to provide tests, multiple examples or more. If that is not ok or welcomed, that is fine, I can come back,
>>> whenever I have more time to properly report the bug.
>>>
>>> I didn't find the existing bug report, sorry for that.
>>>
>>> Yes, it is related. My problem was that I have column names with spaces and current solution doesn't solve it. I have a
>>> solution, which works for me and maybe also for others.
>>>
>>> Either, someone can register me to bugzilla or I can post it here, which could give some direction to developers. I
>>> don't mind whichever is preferred here.
>>>
>>> Best,
>>>
>>> Saren
>>>
>>>
>>> On 29.03.19 09:29, Martin Maechler wrote:
>>>>>>>>> Saren Tasciyan
>>>>>>>>> on Thu, 28 Mar 2019 17:02:10 +0100 writes:
>>>> > Hi,
>>>> > I have found a bug in reformulate function and have a solution for it. I
>>>> > was wondering, where I can submit it?
>>>>
>>>> > Best,
>>>> > Saren
>>>>
>>>>
>>>> Well, you could have given a small reproducible example
>>>> depicting the bug, notably when posting here:
>>>> Just a prose text with no R code or other technical content is
>>>> almost always not really appropriate fo the R-devel mailing list.
>>>>
>>>> Further, in such a case you should google a bit and hopefully
>>>> have found
>>>> https://www.r-project.org/bugs.html
>>>>
>>>> which also mention reproducibility (and many more useful things).
>>>>
>>>> Then it also tells you about R's bug repository, also called
>>>> "R's bugzilla" at https://bugs.r-project.org/
>>>>
>>>> and if you are diligent (but here, I'd say bugzilla is
>>>> (configured?) far from ideal), you'd also find bug PR#17359
>>>>
>>>> https://bugs.r-project.org/bugzilla/show_bug.cgi?id=17359
>>>>
>>>> which was reported already on Nov 2017 .. and only fixed
>>>> yesterday (in the "cleanup old bugs" process that happens
>>>> often before the big new spring release of R).
>>>>
>>>> So is your bug the same as that one?
>>>>
>>>> Martin
>>>>
>>>> > --
>>>> > Saren Tasciyan
>>>> > /PhD Student / Sixt Group/
>>>> > Institute of Science and Technology Austria
>>>> > Am Campus 1
>>>> > 3400 Klosterneuburg, Austria
>>>>
>>>> > ______________________________________________
>>>> > R-devel using r-project.org mailing list
>>>> > https://stat.ethz.ch/mailman/listinfo/r-devel
>>>>
>>>> ______________________________________________
>>>> R-devel using r-project.org mailing list
>>>> https://stat.ethz.ch/mailman/listinfo/r-devel
>>
>> ______________________________________________
>> R-devel using r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-devel
>>
> ______________________________________________
> R-devel using r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
More information about the R-devel
mailing list