surprising behaviour of names<-
Berwin A Turlach wrote:
'*tmp*' = 0
`*tmp*`
# 0
x = 1
names(x) = 'foo'
`*tmp*`
# error: object "*tmp*" not found
`*ugly*`
I agree, and I am a bit flabbergasted. I had not expected that something like this would happen and I am indeed not aware of anything in the documentation that warns about this; but others may prove me wrong on this.
hopefully.
given that `*tmp*`is a perfectly legal (though some would say
'non-standard') name, it would be good if somewhere here a warning
were issued -- perhaps where i assign to `*tmp*`, because `*tmp*` is
not just any non-standard name, but one that is 'obviously' used
under the hood to perform black magic.
Now I wonder whether there are any other objects (with non-standard) names) that can be nuked by operations performed under the hood.
any such risk should be clearly documented, if not with a warning issued
each time the user risks h{is,er} workspace corrupted by the under-the-hood.
I guess the best thing is to stay away from non-standard names, if only to save the typing of back-ticks. :)
agree. but then, there may be -- and probably are -- other such 'best to stay away' things in r, all of which should be documented so that a user know what may happen on the surface, *without* having to peek under the hood.
Thanks for letting me know, I have learned something new today.
wow. most of my fiercely truculent ranting is meant to point out things that may not be intentional, or if they are, they seem to me design flaws rather than features -- so that either i learn that i am ignorant or wrong, or someone else does, pro bono. hopefully. vQ