0

如何将以下字符串向量“c”读入表列表?最短的 read.table strsplit 是哪种方式?例如,我看不到如何在一个命令中读取表格Edit: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
4

2 回答 2

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
于 2012-12-15T02:11:39.137 回答
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

c使用 R 内部函数作为变量名似乎不是一个好主意

于 2012-12-15T01:35:27.717 回答