【发布时间】:2021-01-22 01:11:47
【问题描述】:
我正在跟进this great answer。下面的函数foo,获取VarCorr(fit) 输出的Name 列,并将它们作为summary(rePCA(fit)) 调用的列名。
当我们输入fm1,fm2时它工作正常,但我想知道为什么它会失败fm3?有解决办法吗?
library(lme4)
dat <- read.csv('https://raw.githubusercontent.com/rnorouzian/e/master/sng.csv')
fm1 <- lmer(diameter ~ 1 + (1|plate) + (1|sample), Penicillin)
fm2 <- lmer(Reaction ~ Days + (Days | Subject), sleepstudy)
fm3 <- lmer(y ~ A * B * C + (A + B | group) + (C|group), data = dat)
foo <- function(fit) {
obj <- summary(rePCA(fit))
model <- VarCorr(fit)
Map(function(x, z) {
colnames(x$importance) <- paste(z, unique(sapply(model, colnames)), sep = '_')
x
}, obj, names(obj))
}
#EXAMPLE OF USE:
foo(fm1) ### OK !
foo(fm2) ### OK !
foo(fm3) ### :-( Error in dimnames(x) <- dn
【问题讨论】:
标签: r string function character lme4