Это мой первый раз здесь, так что go просто! Честно говоря, с учетом того количества времени, которое я потратил на устранение неполадок, я мог бы выполнить каждое из них вручную, но я полон решимости выполнить эту работу ...
Я хочу запустить 71 другой способ ANOVA для сравнения объема из 71 представляющих интерес областей мозга (ROI) с экспериментальной группой (группой). Есть три группы: контроль (1), упругий (2) и восприимчивый (3).
мой фрейм данных tibble выглядит следующим образом:
> head(df)
# A tibble: 6 x 74
ID group whole_brain amygdala arbor_vitae auditory_cortex bed_nuclei
<chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 01mc 1 495. 16.5 5.72 5.29 1.30
2 02mc 1 494. 16.8 5.95 5.29 1.30
3 6mc 1 491. 16.9 5.75 5.31 1.17
4 11mc 1 485. 16.5 5.70 5.04 1.31
5 14mc 1 491. 17.1 6.03 5.06 1.21
6 18mc 1 492. 16.5 6.07 5.12 1.23
Я написал for-l oop, через который я ожидаю, что R будет повторять имя области мозга (каждый столбец , исключая whole_brain), а затем суммируйте таблицу ANOVA:
# One-Way ANOVA -----------------------------------------------------------
for(i in 4:ncol(df)){
column <- names(df[i]) # to print each ROI at the top of each ANOVA summary
avz <- aov(df[,i] ~ group, data = df) # Each ANOVA test iterating through each column of my dataframe
result <- summary(avz) # summarize each ANOVA in a table
print(column)
print(result)
}
И все же я получаю это сообщение об ошибке:
Error in model.frame.default(formula = df[, i] ~ group, data = df, drop.unused.levels = TRUE) :
invalid type (list) for variable 'df[, i]'
Когда я меняю первый объект (df[,i]
) в aov()
для имени одной из областей интереса (например, amygdala
), вывод дает имя каждого итеративного столбца области интереса с выбранным значением ANOVA (amygdala ~ group, data=df
) внизу. Это говорит мне, что for l oop работает, но как мне преодолеть сообщение об ошибке и заставить его систематически сравнивать группу с каждым ROI?
Любая помощь была бы удивительной, даже если указать, что это совершенно старый метод и есть что-то более простое в использовании!
Большое вам спасибо:)