在方差分析中引用R中的因子名称

时间:2017-06-09 14:27:21

标签: r anova

我对R来说比较新,我正在尝试简化ANOVA脚本以从表中读取一组因子名称,并对这些因素之间的相互作用进行统计测试。

我的基本问题是如何在调用aov时不必手动写出因子的名称,如下所示:

aov2 <- aov(no_gap ~ Diag*Age, data=data)

但相反,要索引一个包含感兴趣因素名称的变量,就像这样(但这不起作用):

aov2 <- aov(get(vars[5]) ~ get(vars[1])*get(vars[2]), data=data)

这是我的整个剧本:

#Load data
outName <- read_file("fileNameToWrite.txt")
data <- read.table(header=TRUE, "testDataTable.txt",stringsAsFactors = TRUE)

vars <- colnames(data)

# Make sure subject column is a factor
cols <- c(vars[1:2])
data[,cols] <- data.frame(apply(data[cols], 2, as.factor))

##
# 2x2 between:
aov2 <- aov(get(vars[5]) ~ get(vars[1])*get(vars[2]), data=data)
aov2 <- aov(no_gap ~ Diag*Age, data=data)
aov2 <- aov(apply(vars[5]) ~ get(vars[1])*get(vars[2]), data=data)
summary(aov2)

作为参考,这就是&#34; vars&#34;在评估时看起来像:

> vars
[1] "subject" "Diag"    "Age"     "gap"     "no_gap"

非常感谢你的帮助!!

1 个答案:

答案 0 :(得分:0)

您传递给no_gap ~ Diag*Age的参数aov公式对象。您可以从vars创建公式对象,如下所示:

myform <- as.formula(sprintf("%s ~ %s * %s", vars[5], vars[1], vars[2]))
aov2 <- aov(myform, data=data)