【问题标题】:Referencing factor names in R for ANOVA在 R 中为 ANOVA 引用因子名称
【发布时间】:2017-06-09 14:27:21
【问题描述】:

我对 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)

作为参考,这是“vars”在评估时的样子:

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

非常感谢您的帮助!!

【问题讨论】:

    标签: r anova


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-08
      • 1970-01-01
      • 1970-01-01
      • 2019-07-25
      • 1970-01-01
      • 2018-07-08
      相关资源
      最近更新 更多