Andrew Gelman
2006-Feb-10 12:32 UTC
[R] mcmcsamp shortening variable names; how can i turn this feature off?
I have written a function called mcsamp() that is a wrapper that runs
mcmcsamp() and automatically monitors convergence and structures the
inferences into vectors and arrays as appropriate.
But I have run into a very little problem, which is that mcmcsamp()
shortens the variable names. For example:
> set.seed (1)
> group <- rep (1:5,10)
> a <- rnorm (5,-3,3)
> y <- rnorm (50, a[group], 2)
> fit <- lmer (y ~ 1 + (1 | group))
> mcmcsamp(fit)
(Intercept) log(sigma^2) log(grop.(In))
[1,] -2.771979 0.6909418 1.750876
attr(,"mcpar")
[1] 1 1 1
attr(,"class")
[1] "mcmc"
I want "grop" in the above output to be "group", and I want
"(In)" to be
"(Intercept)". For my purposes (fitting models in general settings)
it
is important to have descriptive variable names, and I gain nothing by
restricting names to 14 characters.
Is there a way to turn this feature off?
Thanks.
--
Andrew Gelman
Professor, Department of Statistics
Professor, Department of Political Science
gelman at stat.columbia.edu
www.stat.columbia.edu/~gelman
Statistics department office:
Social Work Bldg (Amsterdam Ave at 122 St), Room 1016
212-851-2142
Political Science department office:
International Affairs Bldg (Amsterdam Ave at 118 St), Room 731
212-854-7075
Mailing address:
1255 Amsterdam Ave, Room 1016
Columbia University
New York, NY 10027-5904
212-851-2142
(fax) 212-851-2164
Peter Dalgaard
2006-Feb-10 13:20 UTC
[R] mcmcsamp shortening variable names; how can i turn this feature off?
Andrew Gelman <gelman at stat.columbia.edu> writes:> I have written a function called mcsamp() that is a wrapper that runs > mcmcsamp() and automatically monitors convergence and structures the > inferences into vectors and arrays as appropriate. > > But I have run into a very little problem, which is that mcmcsamp() > shortens the variable names. For example: > > > set.seed (1) > > group <- rep (1:5,10) > > a <- rnorm (5,-3,3) > > y <- rnorm (50, a[group], 2) > > fit <- lmer (y ~ 1 + (1 | group)) > > mcmcsamp(fit) > (Intercept) log(sigma^2) log(grop.(In)) > [1,] -2.771979 0.6909418 1.750876 > attr(,"mcpar") > [1] 1 1 1 > attr(,"class") > [1] "mcmc" > > > I want "grop" in the above output to be "group", and I want "(In)" to be > "(Intercept)". For my purposes (fitting models in general settings) it > is important to have descriptive variable names, and I gain nothing by > restricting names to 14 characters. > > Is there a way to turn this feature off? > Thanks.Looks like they've been run through abbreviate() (which I thought would be called abbr(), but apparently not...)> abbreviate("Peter Dalgaard",5)Peter Dalgaard "PtrDl" Unfortunately, the 2 parts have been abbreviated separately, so the long names are lost (in fact never generated). I suppose that it could be possible to hack Matrix:::abbrvNms so that a long version is returned in names(colnames(mcmc.out)). You have the sources... Given how close even atanh(Sbj.(I).Dys) is to filling up the label field of a Trellis plot, I must say that I think there is a case for abbreviating. Those names easily get *very* long. -- O__ ---- Peter Dalgaard ??ster Farimagsgade 5, Entr.B c/ /'_ --- Dept. of Biostatistics PO Box 2099, 1014 Cph. K (*) \(*) -- University of Copenhagen Denmark Ph: (+45) 35327918 ~~~~~~~~~~ - (p.dalgaard at biostat.ku.dk) FAX: (+45) 35327907