将摘要输出存储在表或矩阵列表中

时间:2012-12-15 00:56:08

标签: r

如何将以下字符串“c”读入表格列表?哪种方式是最短的read.table strsplit?例如我无法在一个命令中看到如何阅读表编辑:c [4:6] a [4:6]。

require(car)
m<-matrix(rnorm(16),4,4,byrow=T)
a<-Anova(lm(m~1),type=3,idata=data.frame(treatment=factor(1:4)),idesign=~treatment)
c<-capture.output(summary(a,multivariate=F))
c

2 个答案:

答案 0 :(得分:1)

这将返回第4:6行

 c[4:6]

现在,如果你想解析这个,我会分两步完成。首先是第5行:第6行的列值,然后再添加名称。

> vals <- read.table(text=c[5:6])
> txt <- "                \t    SS\t num Df\t  Error SS\t den Df\t       F\t  Pr(>F)"
> names(vals) <- names(read.delim(text=txt))
> vals
            X         SS num.Df  Error.SS den.Df       F  Pr..F.
1 (Intercept) 0.57613392      1 0.4219563      3 4.09616 0.13614
2   treatment 1.85936442      3 8.2899759      9 0.67287 0.58996

答案 1 :(得分:0)

编辑 - 您可以查看summary函数的源代码并计算自己所需的数量

getAnywhere(summary.Anova.mlm)

最初的想法似乎不起作用。

c2 <- summary(a)
# find out what 'properties' the summary object has
# turns out, it is just the Anova object
class(c2) <- "list"
names(c2)

返回

 [1] "SSP"        "SSPE"       "P"          "df"         "error.df"  
 [6] "terms"      "repeated"   "type"       "test"       "idata"     
[11] "idesign"    "icontrasts" "imatrix"    "singular" 

我们可以访问它们

c2$SSP
c2$SSPE

将R内部c函数用作变量名

似乎不是一个好主意