Запуск ANOSIM с указанными c данными в R? - PullRequest
0 голосов
/ 02 апреля 2020

Я пытался заполнить ANOSIM данными об исследовании, которое я провел, но я получаю несколько ошибок, и я не уверен, как это исправить. Большинство ошибок «различия имеют 24 наблюдения, а группировка - 23». Я пытаюсь увидеть сходство в структуре сообщества между несколькими образцами. мой код пока что

setwd()
#load invertebrate data

Invertebrates<- read.csv(file="Invertebrates.csv",head=TRUE,sep=",")

#install packages

install.packages("vegan")
library(vegan)

#make community matrix

com<-Invertebrates[,2:ncol(Invertebrates)]
m_com<-as.matrix(com)

# group by site

group=Invertebrates[,1]

#ANOSIM

invert.ano<-anosim(m_com,group)

Тогда я получаю

Ошибка в anosim (m_com, group): в группах должны быть повторы

Спасибо за любую помощь

Invertebrates <- structure(list(Site = structure(c(10L, 14L, 6L, 3L, 24L, 12L, 7L, 18L, 1L, 8L, 15L, 5L, 16L, 23L, 4L, 11L, 21L, 19L, 9L, 13L
    ), .Label = c("Anax parthenope", "Anisus vortex", "Asellus aquaticus", 
    "Bathyomphalus contortus", "Bithynia leachii", "Bithynia tentaculata", 
    "Coenagrion pulchellum", "Corixa punctata", "Dytiscus marginalis", 
    "Gammarus pulex", "Gyraulus albus", "Haliplus fluviatilis", "Haplotaxis gordioides", 
    "Ilyocoris cimicoides", "Lymnaea stagnalis", "Lymnaea truncatula", 
    "Oxygastra curtisii", "Physa fontilnalis", "Piscicola geometra", 
    "Planorbis cornatus", "Planorbis planorbis", "Radix ovata", "Radix palustris", 
    "Sialis lutaria"), class = "factor"), Finglesham.Brook.A = c(112L, 
    1L, 3L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
    0L, 0L, 0L), Betteshanger.Pond.A = c(0L, 0L, 0L, 0L, 0L, 0L, 
    0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L), Betteshanger.Pond.B = c(0L, 
    0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
    0L, 0L, 0L), Great.Mongeham.A = c(7L, 0L, 0L, 2L, 2L, 0L, 0L, 
    0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L), Site.7.SS.A = c(6L, 
    0L, 0L, 0L, 0L, 6L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
    0L, 0L, 0L), Great.Mongeham.B = c(32L, 0L, 0L, 0L, 1L, 0L, 0L, 
    0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L), Broad.dike.A = c(0L, 
    0L, 0L, 0L, 0L, 2L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
    0L, 0L, 0L), Broad.dike.B = c(0L, 0L, 0L, 2L, 0L, 0L, 0L, 0L, 
    0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L), S3.Broad.dike.SS.B = c(14L, 
    0L, 7L, 6L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
    0L, 0L, 0L), Site.6.NS.B = c(65L, 0L, 0L, 2L, 2L, 0L, 0L, 1L, 
    0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L), Fowlmead.Lake.A = c(0L, 
    0L, 0L, 0L, 0L, 0L, 0L, 0L, 3L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
    0L, 0L, 0L), Site.7.SS.B = c(0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 
    0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L), Fowlmead.lake.B = c(0L, 
    0L, 0L, 0L, 0L, 0L, 2L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
    0L, 0L, 0L), Adelaide.NS.A = c(5L, 0L, 3L, 6L, 2L, 0L, 0L, 0L, 
    0L, 0L, 2L, 6L, 4L, 1L, 1L, 6L, 4L, 0L, 0L, 0L), Little.Downs.Bridge.B = c(48L, 
    8L, 0L, 23L, 0L, 0L, 2L, 0L, 0L, 0L, 0L, 18L, 0L, 2L, 0L, 1L, 
    0L, 1L, 0L, 0L), Finglesham.Brook.B = c(78L, 0L, 3L, 15L, 1L, 
    0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 2L), 
        Adelaide.SS.A = c(8L, 0L, 0L, 33L, 9L, 0L, 0L, 0L, 0L, 0L, 
        0L, 12L, 0L, 4L, 19L, 7L, 4L, 0L, 2L, 0L), Adelaide.SS.B = c(4L, 
        0L, 20L, 9L, 2L, 0L, 0L, 0L, 0L, 0L, 7L, 0L, 0L, 0L, 14L, 
        0L, 1L, 0L, 0L, 0L), Ham.Fen.SS = c(1L, 0L, 0L, 6L, 3L, 0L, 
        0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L), 
        Adelaide.NS.B = c(3L, 0L, 0L, 8L, 0L, 6L, 1L, 0L, 0L, 2L, 
        0L, 0L, 0L, 0L, 0L, 0L, 12L, 0L, 1L, 0L), Site.6.NS.A = c(58L, 
        0L, 0L, 2L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
        0L, 0L, 0L, 0L), S3.Broad.dike.SS.A = c(24L, 0L, 0L, 50L, 
        0L, 0L, 3L, 13L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
        0L, 0L), Little.Downs.Bridge.A = c(10L, 16L, 23L, 46L, 0L, 
        0L, 2L, 0L, 0L, 4L, 0L, 0L, 0L, 0L, 4L, 0L, 5L, 0L, 0L, 0L
        )), row.names = c(NA, 20L), class = "data.frame")

1 Ответ

0 голосов
/ 03 апреля 2020

Если вы запустите

table(Invertebrates$Site)

, вы увидите, что переменная группировки фактически ничего не группирует. То есть существует максимум одно наблюдение на группу. Но ANOSIM требует, чтобы данные были сгруппированы.

Если я просто создам случайную переменную группировки, например:

Invertebrates$Group <- sample(c(1,2), nrow(Invertebrates), replace = TRUE)

и перезапущу ваш анализ:

Invertebrates$Group <- sample(c(1,2), nrow(Invertebrates), replace = TRUE)
group <- Invertebrates[, "Group"]
invert.ano <- anosim(m_com, group)

Это работает!

...