我有这样的桌子:
id BiotinControl1_2 BiotinControl2 BiotinControl3 BiotinTreatment1_2 BiotinTreatment2 BiotinTreatment3 Sequence
1 75 3893050.50 2717893.32 3206861.1 3435216.40 3768203.0 3647604.45 AAAAGAAAVANQGKK
2 192 900604.61 741299.33 937413.2 818936.89 937764.7 751303.46 AAAAGAAAVANQGKK
3 3770 90008.14 87127.07 107568.6 85120.95 101947.6 90152.82 AAFTKLDQVWGSE
我使用下面的代码来重新组织我的数据:
tbl_reo <- melt(tbl_anv, measure.vars=2:7)
所以现在我的数据如下所示:
id Sequence variable value
1 75 AAAAGAAAVANQGKK BiotinControl1_2 3893050.50
2 192 AAAAGAAAVANQGKK BiotinControl1_2 900604.61
3 3770 AAFTKLDQVWGSE BiotinControl1_2 90008.14
我想进行方差分析。我想在一个循环中按 id 来做。因此,首先我为 id 创建了一个表,其中包含所有 6 个值和变量列,该列说明该值属于哪个变量。我想对这两列进行方差分析。
编辑:所以对于每个 id ,我想计算 lm(value~variable)。
aov.test <- summary(aov(tbl_reo$value ~ as.factor(tbl_reo$variable)))
tbl_reo[,5] <- aov.test[[1]]$'Pr(>F)'[1]
我用来计算方差分析的代码,但它不能正常工作。我想将结果放在我的数据中的额外列中。
tbl_anv <- tbl_all_onlyK[,c("id", "BiotinControl1_2", "BiotinControl2", "BiotinControl3", "BiotinTreatment1_2", "BiotinTreatment2", "BiotinTreatment3", "Sequence")]
tbl_reo <- melt(tbl_anv, measure.vars=2:7)
dat <- vector("integer", length = ncol(tbl_reo))
names(dat) <- colnames(tbl_reo)
for (var in variable) {
dat[var] <- anova(lm(value ~ tbl_reo[, var], data = tbl_reo))$"Pr(>F)"[1]
}