Есть ли способ определить первый столбец как имена сайтов для specaccum в пакете R vegan, чтобы избежать ошибок? - PullRequest
0 голосов
/ 08 января 2020

Мне кажется, я борюсь с проблемой фрейма данных. В моем наборе данных мой первый столбец - названия сайтов, назовите их Tech 1 - Tech 8. Каждый из остальных столбцов относится к одному виду, с двоичными 0 или 1 ниже, чтобы обозначить их присутствие в каждом сайте. Каждый раз, когда я использую функцию specaccum, она выдает «Ошибка в colSums (x):« x »должно быть цифрой c». Удаление первого столбца приводит только к 1 сайту и ошибкам, но включение столбца приводит только к большему количеству ошибок. Как я могу манипулировать своим фреймом данных таким образом, чтобы первый столбец стал именем сайта? Заранее спасибо

1 Ответ

0 голосов
/ 09 января 2020

Вот простое решение

library(vegan)

#I suppose your data is something like this
df<-data.frame(Sites = paste("Tech",1:20),
           Sp1 = rep(c(1,0),each=10),
           Sp2 = rep(c(1,0,0,1),each=5),
           Sp3 = rep(c(0,1,0,1),each=5))

#Change df from data.frame to numeric matrix, excluding the first column
mat<-data.matrix(df[,-1])
#Add first column as row names
row.names(mat)<-df[,1]
#Apply specaccum function
specaccum(mat)
...