【问题标题】:Not using all groups in ANOVA in R未在 R 中使用 ANOVA 中的所有组
【发布时间】:2015-07-01 15:03:05
【问题描述】:

我想在 R 中做一个方差分析,我的数据集是这样的:

Sample   Protein1   Workout
  1         1.213      0
  2         2.653      -
  3         3.241      NA
  4         5.362      + 
  5         3.532      N

所以有 5 个组(NA、0、-、+、N),当我在 R 中进行 ANOVA 时,它不使用 NA 组。但我也不想使用 0 组。有没有办法做到这一点,或者我必须做一个没有 0 组的新数据集?

这是我现在的代码(我有 92 种蛋白质):

x <- data.frame(p.value=sapply(df[,2:93], function(i) summary(aov(i ~ df$X.Workout))[[1]][["Pr(>F)"]][[1]]))
x[x$p.value < 0.05/92,,drop=F]

当我想更改年龄列中的数据时,还注意到另一个问题。在列中我有

25-35
35-45
45-55
25-35
35-45 
35-45
25-35
35-45
45-55

等等。我想把 35-45 和 45-55 改成 35+ 但是当我写的时候

df$X.Age[df$X.Age == "45-55"] <- "35+"

我得到以下内容

In `[<-.factor`(`*tmp*`, df$X.Age == "45-55", value = c(1L, 1L,  :
  invalid factor level, NA generated

【问题讨论】:

  • NA 被 R 视为不可用的值,也许您可​​以将 NA 转换为字符串 NA,R 将打印为 &lt;NA&gt;

标签: r anova


【解决方案1】:

如果您还想排除数据,可以将 0 的数据更改为 NA:

df$Workout[df$Workout == "0"] <- NA

或过滤您的数据:

df <- df[df$Workout!=0, ]

【讨论】:

  • 谢谢,成功了。但不是我添加的另一个问题。
猜你喜欢
  • 1970-01-01
  • 2020-10-10
  • 2017-07-18
  • 1970-01-01
  • 1970-01-01
  • 2014-11-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多