我在R
工作,有一个名为lme4
的包。
执行模型:
lmer.rasch <- lmer(Response ~ item -1 + (1|STIDSTD),family=binomial, data=exampledata)
让我在控制台输出,如帖子末尾所示。我想复制这个,似乎是一个表,excel,或最终说,识别单独的列和行。 Ctrl-C / Ctrl-V到excel会识别行,但不识别列。
使用write.csv(lmer.rasch)
会出错:
as.data.frame.default(x [[i]],可选= TRUE)出错:不能 将类'结构(“mer”,package =“lme4”)'强制转换为data.frame
这是包中的问题,还是我错误地使用write函数的一般问题,或者R实际上没有将此输出分成列?
Fixed effects:
Estimate Std. Error z value Pr(>|z|)
variableamoeba -2.7529 0.3000 -9.175 < 2e-16 ***
variablebacterium -2.3937 0.2244 -10.668 < 2e-16 ***
variableleech 0.5578 0.1693 3.294 0.000987 ***
variablecentipede 1.7012 0.1909 8.911 < 2e-16 ***
variablelizard -4.1836 0.4090 -10.229 < 2e-16 ***
variabletapeworm -1.3697 0.1841 -7.439 1.01e-13 ***
variablehead lice 1.1803 0.1777 6.643 3.07e-11 ***
variablemaggot 0.8819 0.1740 5.068 4.03e-07 ***
variableant 2.5971 0.2332 11.137 < 2e-16 ***
variablemoth 2.5389 0.2305 11.016 < 2e-16 ***
variablemosquito 4.1270 0.3984 10.359 < 2e-16 ***
variableearthworm -0.3113 0.1675 -1.858 0.063106 .
variablecaterpillar 0.7278 0.1706 4.265 2.00e-05 ***
variablescorpion -3.1011 0.2748 -11.286 < 2e-16 ***
variablesnail -1.4499 0.1861 -7.791 6.66e-15 ***
variablespider 0.4913 0.1681 2.923 0.003469 **
variablegrasshopper 1.9167 0.1986 9.650 < 2e-16 ***
variabledust mite 0.5767 0.1701 3.391 0.000696 ***
variabletarantula -0.7640 0.1734 -4.406 1.05e-05 ***
variabletermite 1.8333 0.2007 9.136 < 2e-16 ***
variablebat -5.2427 0.6486 -8.083 6.33e-16 ***
variablewasp 3.0696 0.2687 11.423 < 2e-16 ***
variablesilkworm 1.1310 0.1792 6.313 2.74e-10 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
答案 0 :(得分:9)
这是一种方式:
x <- rnorm(100)
y <- 1:100
g <- c(rep("a",50),rep("b",50))
library(lme4)
mod1 <- glmer(y ~ x + (1|g) )
summary(mod1)
library(memisc)
getSummary.mer(mod1)$coef
write.csv(getSummary.mer(mod1)$coef,"answer.csv")
这应该是我认为你想要的,但你的模型属于mer
类而不是matrix
或data.frame
:
class(mod1)
[1] "mer"
attr(,"package")
[1] "lme4"
class(getSummary.mer(mod1)$coef)
[1] "matrix"
这就是为什么你不能只是根据需要写一个文件。
修改
现在也是:
summary(mod1)$coefficients
write.csv( summary(mod1)$coefficients )
答案 1 :(得分:1)
我按照三个简单的步骤从R-studio控制台复制并粘贴到excel并维护/恢复列结构:
从R-Studio控制台复制文本。
将分隔字符串的内容粘贴到单个单元格中。
单击我粘贴数据的(单个)单元格,然后从数据选项卡(或Alt + D + E)中选择“text to columns”选项。这将启动文本导入向导,我发现它可以很好地根据文本宽度计算R-Studio粘贴中的列(点击“下一步”很多)。
答案 2 :(得分:0)
这适用于我(使用lme4):
coeffs <- coef(summary(your.model)) # get estimates, etc...
p <- pnorm(abs(coeffs[, "t value"]), lower.tail = FALSE) * 2 # add the much disputed p-values
coeffsp <- cbind(coeffs, "p value" = round(p,3)) # combine it into one object
write.csv(coeffsp, "coeffsp.csv") # export