Решение без пакетов, используя colSums и colMeans
Данные:
df = data.frame(sp1 = c(1,0,3,0,1),
sp2 = c(12,3,0,6,1),
sp3 = c(0,5,0,0,0),
sp4 = c(0,0,1,0,0),
row.names = paste("Plot",c("A","B","C","D","E"),sep=""))
Вопросы:
# question 1
pres = colSums(apply(df,2,function(x) x>0))
# question 2
pct = colMeans(df)
# question 3
rlt = pct/sum(pct)*100
df2 = data.frame(pres,pct,rlt)
df2
# pres pct rlt
# sp1 3 1.0 15.151515
# sp2 4 4.4 66.666667
# sp3 1 1.0 15.151515
# sp4 1 0.2 3.030303
Обычно в Экологии мы ставим отдельных в ряд, но это преобразование легко достижимо функцией t()
, если вам это нужно.