不使用 R 中方差分析中的所有组

Not using all groups in ANOVA in R

我想在 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 中执行方差分析时,它不使用 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

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

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

或过滤您的数据:

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