Обзор:
У меня есть фрейм данных с именем 'Subset_leaf_1_New' с двумя интересующими столбцами: (1) Urbanisation_index , содержащий различные подуровни (1-4) из урбанизация; и (2) Canopy_Index . Эти наблюдения подчеркивают, как степень урбанизации влияет на степень покрытия навесом для вида дуба Quercus petraea.
Я особенно заинтересован в определении, с использованием ANOVA , если существенное изменение в Canopy_Index между различными категориями или / подуровнями Urbanisation_index (1- 4) для Quercus petraea. .
Сначала я переформатировал фрейм данных в нужный формат для выполнения ANOVA, а затем я выполнил ANOVA. Однако я действительно не уверен, правильно ли я переформатировал фрейм данных и использовал ли я правильную методологию.
Для сравнения я провел ANOVA, используя excel (см. Желаемый результат), что может быть правильным желаемым результатом; тем не менее, я не совсем понимаю, верна ли моя методология, и, желательно, я хочу провести анализ, используя R.
Если кто-нибудь может помочь, я был бы очень признателен.
Желаемый результат:
R-код
library(tidyr)
library(purrr)
library(dplyr)
##Subset the dataframe to include just two columns:
##(1) Urbanisation Index
##(2) Canopy Index
df1<-Subset_leaf_1_New %>% select(Urbanisation_index, Canopy_Index)
##Subset for ANOVA
##Produce New Dataframe to perform the ANOVA
Canopy_Summarised_1 <- map(split(df1, df1$Urbanisation_index), 2)
Canopy_Summarised_1 <- lapply(b, function(x){
x1<-x
length(x1) <- max(sapply(Canopy_Summarised_1, length))
x1
}) %>% data.frame()
colnames(Canopy_Summarised_1) <- paste("sub_level", 1:4, sep = "_")
##Change NA's in the data frame to zeros
Canopy_Summarised_1[is.na(Canopy_Summarised_1)] <- 0
##Produce new dataframe containing the zero's
Canopy_Summarised_1_New<-data.frame(Canopy_Summarised_1)
####One way Anova between the Urbanisation_index and the Canopy_Index
Obs_1_canopy<-aov(Canopy_Summarised_1_New$sub_level_1~., data=Canopy_Summarised_1_New[ , 2:4] )
summary(aov(Canopy_Summarised_1_New$sub_level_1~., data=Canopy_Summarised_1_New[ , 2:4]))
выход
Данные
structure(list(X = c(9L, 10L, 26L, 27L, 40L, 41L, 52L, 53L, 54L,
73L, 76L, 77L, 92L, 94L, 98L, 99L, 100L, 101L, 109L, 110L, 111L,
132L, 133L, 134L, 156L, 157L, 209L, 211L, 213L, 222L, 223L, 224L,
238L, 240L, 241L, 242L, 243L, 244L, 246L, 247L, 248L, 249L, 250L,
251L, 252L, 253L, 258L, 269L, 270L, 271L, 272L, 273L, 274L, 275L
), Obs_.no = c(9L, 10L, 26L, 27L, 40L, 41L, 52L, 53L, 54L, 73L,
76L, 77L, 92L, 94L, 98L, 99L, 100L, 101L, 109L, 110L, 111L, 132L,
133L, 134L, 156L, 157L, 209L, 211L, 213L, 222L, 223L, 224L, 238L,
240L, 241L, 242L, 243L, 244L, 247L, 248L, 249L, 250L, 251L, 252L,
253L, 254L, 259L, 270L, 271L, 272L, 273L, 274L, 275L, 276L),
Date_observed = structure(c(2L, 2L, 6L, 6L, 7L, 7L, 8L, 8L,
8L, 6L, 6L, 6L, 4L, 4L, 9L, 9L, 9L, 9L, 4L, 4L, 4L, 6L, 6L,
6L, 2L, 2L, 2L, 2L, 11L, 6L, 6L, 6L, 5L, 5L, 9L, 5L, 5L,
5L, 10L, 1L, 1L, 1L, 1L, 5L, 5L, 5L, 12L, 3L, 3L, 3L, 10L,
10L, 10L, 10L), .Label = c("10/14/18", "10/19/18", "10/20/18",
"10/21/18", "10/22/18", "10/23/18", "10/24/18", "10/25/18",
"10/27/18", "10/28/18", "10/29/18", "11/6/18"), class = "factor"),
Latitude = c(52.947709, 52.947709, 51.60157, 51.60157, 50.446841,
50.446841, 52.01434, 52.01434, 52.01434, 55.919722, 50.114277,
50.114277, 51.78666, 51.78666, 53.38728, 53.38728, 53.38728,
53.38728, 53.582285, 53.582285, 53.582285, 50.79387, 50.79387,
50.79387, 52.04252, 52.04252, 53.675996, 53.675996, 55.43828,
52.36286, 52.36286, 52.36286, 52.16104, 52.16104, 54.7311,
51.61842, 51.61842, 51.61842, 55.91913, 51.06433, 51.06433,
51.06433, 51.06433, 55.920966, 55.920966, 55.920966, 57.158724,
53.37687, 53.37687, 53.37687, 54.27745, 54.27745, 54.27745,
54.27745), Longitude = c(-1.435407, -1.435407, -3.67111,
-3.67111, -3.706923, -3.706923, 1.04007, 1.04007, 1.04007,
-3.210278, -5.541128, -5.541128, -0.71433, -0.71433, -2.95811,
-2.95811, -2.95811, -2.95811, -2.802239, -2.802239, -2.802239,
0.26684, 0.26684, 0.26684, -2.43733, -2.43733, -1.272824,
-1.272824, -4.64226, -2.06327, -2.06327, -2.06327, 0.18702,
0.18702, -5.8041, -0.16034, -0.16034, -0.16034, -3.20987,
-1.79923, -1.79923, -1.79923, -1.79923, -3.193503, -3.193503,
-3.193503, -2.166099, -1.34506, -1.34506, -1.34506, -0.47911,
-0.47911, -0.47911, -0.47911), Altitude = c(104L, 104L, 184L,
184L, 36L, 36L, 47L, 47L, 47L, 110L, 9L, 9L, 166L, 166L,
0L, 0L, 0L, 0L, 36L, 36L, 36L, 18L, 18L, 18L, 45L, 45L, 0L,
0L, 0L, 123L, 123L, 123L, 75L, 75L, 0L, 73L, 73L, 73L, 109L,
0L, 0L, 0L, 0L, 115L, 115L, 115L, 119L, 34L, 34L, 34L, 0L,
0L, 0L, 0L), Species = c("Quercus petraea", "Quercus petraea",
"Quercus petraea", "Quercus petraea", "Quercus petraea",
"Quercus petraea", "Quercus petraea", "Quercus petraea",
"Quercus petraea", "Quercus petraea", "Quercus petraea",
"Quercus petraea", "Quercus petraea", "Quercus petraea",
"Quercus petraea", "Quercus petraea", "Quercus petraea",
"Quercus petraea", "Quercus petraea", "Quercus petraea",
"Quercus petraea", "Quercus petraea", "Quercus petraea",
"Quercus petraea", "Quercus petraea", "Quercus petraea",
"Quercus petraea", "Quercus petraea", "Quercus petraea",
"Quercus petraea", "Quercus petraea", "Quercus petraea",
"Quercus petraea", "Quercus petraea", "Quercus petraea",
"Quercus petraea", "Quercus petraea", "Quercus petraea",
"Quercus petraea", "Quercus petraea", "Quercus petraea",
"Quercus petraea", "Quercus petraea", "Quercus petraea",
"Quercus petraea", "Quercus petraea", "Quercus petraea",
"Quercus petraea", "Quercus petraea", "Quercus petraea",
"Quercus petraea", "Quercus petraea", "Quercus petraea",
"Quercus petraea"), Tree_diameter = c(569, 892, 46.5, 27.7,
44.6, 22.6, 48.1, 83.7, 77.9, 85, 82.9, 52.9, 40.6, 68.6,
117, 240, 210, 310, 57, 73.9, 37.1, 81.5, 29.3, 43.3, 41.9,
43.8, 240, 122, 21, 124, 133, 119, 79.3, 62.4, 70, 115.9,
111.1, 88.9, 90.8, 36, 31, 37.5, 42.3, 73, 54, 75, 159, 49,
57.9, 54.8, 53.5, 88.8, 71.3, 101.9), Urbanisation_index = c(2,
2, 4, 4, 3, 3, 4, 4, 4, 2, 4, 3, 4, 4, 1, 1, 1, 1, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 4, 4, 3, 2, 2, 2, 1,
2, 2, 2, 2, 2, 2, 2, 1, 4, 4, 4, 4, 4, 4, 4), Stand_density_index = c(3L,
4L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 1L, 3L, 2L, 3L, 3L, 2L, 2L,
2L, 1L, 4L, 4L, 4L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 2L, 2L, 2L,
2L, 4L, 4L, 4L, 2L, 1L, 1L, 4L, 2L, 2L, 2L, 2L, 4L, 4L, 4L,
2L, 4L, 4L, 4L, 4L, 4L, 4L, 4L), Canopy_Index = c(65, 75,
55, 85, 85, 85, 95, 85, 85, 45, 65, 75, 75, 65, 35, 75, 65,
85, 65, 95, 75, 75, 75, 65, 75, 65, 75, 95, 95, 85, 85, 85,
75, 75, 65, 85, 75, 65, 55, 95, 95, 95, 95, 45, 55, 35, 55,
65, 95, 95, 45, 65, 45, 55), Phenological_Index = c(2L, 2L,
4L, 3L, 2L, 2L, 2L, 2L, 2L, 3L, 2L, 3L, 1L, 2L, 4L, 3L, 2L,
1L, 3L, 2L, 3L, 2L, 3L, 3L, 2L, 2L, 2L, 1L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 3L, 3L, 2L, 2L, 1L, 1L, 4L, 4L, 4L, 2L,
2L, 2L, 2L, 3L, 2L, 3L, 2L)), row.names = c(NA, -54L), class = c("data.table",
"data.frame"), .internal.selfref = <pointer: 0x0>, index = structure(integer(0), "`__Species`" = integer(0)))