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