Dear Roger,

The problem is this. qss() looks like this:

if (is.matrix(x)) {
   [...]
}
if (is.vector(x)) {
   [...]
}
qss

Now let's check these if() statements:
is.vector(B$x) # TRUE
is.vector(D$x) # FALSE
is.matrix(B$x) # FALSE
is.matrix(D$x) # FALSE

is.vector(D$x) being FALSE may be surprising, but see ?is.vector: "is.vector 
returns TRUE if x is a vector of the specified mode having no attributes other 
than names. It returns FALSE otherwise." And as D$x shows, this vector has 
additional attributes.

So, with 'D', qss() returns the qss function (c.f., qss(B$x) and qss(D$x)) 
which makes no sense. So, the internal logic in qss() needs to be fixed.

>In accordance with the usual R-help etiquette I first tried to contact the
>maintainer of the haven package, i.e. RStudio, which elicited the response: 
>"since
>the error is occurring outside RStudio we’re not responsible, so try Stack
>Overflow".  This is pretty much what I would have expected from the capitalist
>running dogs they are.  Admittedly, the error is probably due to some 
>unforeseen

This kind of bashing is really silly. Can you tell us again how much you paid 
for the use of the haven package?

Best,
Wolfgang

>-----Original Message-----
>From: R-help [mailto:r-help-boun...@r-project.org] On Behalf Of Koenker, Roger 
>W
>Sent: Saturday, 10 April, 2021 11:26
>To: r-help
>Subject: [R] Stata/Rstudio evil attributes
>
>As shown in the reproducible example below, I used the RStudio function 
>haven() to
>read a Stata .dta file, and then tried to do some fitting with the resulting
>data.frame.  This produced an error from my fitting function rqss() in the 
>package
>quantreg.  After a bit of frustrated cursing, I converted the data.frame, D, 
>to a
>matrix A, and thence back to a data.frame B, and tried again, which worked as
>expected.  The conversion removed the attributes of D.  My question is:  why 
>were
>the attributes inhibiting the fitting?
>
>In accordance with the usual R-help etiquette I first tried to contact the
>maintainer of the haven package, i.e. RStudio, which elicited the response: 
>"since
>the error is occurring outside RStudio we’re not responsible, so try Stack
>Overflow".  This is pretty much what I would have expected from the capitalist
>running dogs they are.  Admittedly, the error is probably due to some 
>unforeseen
>infelicity in my rqss() coding, but it does seem odd that attributes could have
>such a drastic  effect.  I would be most grateful for any insight the R commune
>might offer.
>
>#require(haven) # for reading dta file
>#Ddta <- read_dta(“foo.dta")
>#D <- with(Ddta, data.frame(y = access_merg, x = meannets_allhh, z = meanhh))
>#save(D, file = "D.Rda")
>con <- url("http://www.econ.uiuc.edu/~roger/research/data/D.Rda";)
>load(con)
>
># If I purge the Stata attributes in D:
>A <- as.matrix(D)
>B <- as.data.frame(A)
>
># This works:
>with(D,plot(x, y, cex = .5, col = "grey"))
>taus <- 1:4/5
>require(quantreg)
>for(i in 1:length(taus)){
>    f <- rqss(y ~ qss(x, constraint = "I", lambda = 1), tau = taus[i], data = 
> B)
>    plot(f, add = TRUE, col = i)
>}
># However, the same code with data = D, does not.  Why?
______________________________________________
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.

Reply via email to