我正在尝试计算物种的出现次数(沿着海拔梯度分布)' class'高度。
以下是原始数据框:
10
以下是我想要获得的内容:
tab
R sp N Hauteur Alt Plot Quadrat Microhab Cover
1 R2 B 1 0-50cm 350 P1 Q1 TA 50
2 R2 D 1 0-50cm 350 P1 Q1 TA 50
3 R3 A 2 0-50cm 550 P1 Q1 TA 95
4 R3 C 1 0-50cm 550 P1 Q1 TA 95
5 R3 B 3 0-50cm 550 P1 Q1 TA 95
6 R3 D 4 0-50cm 550 P1 Q1 TA 95
7 R4 C 3 0.5-1m 350 P1 Q1 TB 50
8 R4 A 4 0.5-1m 350 P1 Q1 TB 50
9 R4 E 2 0.5-1m 350 P1 Q1 TB 50
10 R4 D 3 0.5-1m 350 P1 Q1 TB 50
11 R4 B 4 0.5-1m 350 P1 Q1 TB 50
为此,我设法得到第4列(" SP"," Altmin"," Altmax"," Altmoy") 。但我并没有设法通过海拔等级来获得发生的次数。 (例如" nb_350.549"),以及每个海拔等级的代表性百分比,关于每个物种的发生次数(例如"%_ 350.549) - 事实上= nb.occ.SP(A)/ nb_350.549 * 100
这是我的剧本:
head(parametres)
SP Altmin Altmax Altmoy nb_350.549 nb_550.749 [...] %_350.549m
A 350 550 450 1 0 ... 50
B 350 550 416.67 2 1 ... 33.3
C 350 550 450 1 0 ... 50
有什么想法吗?
谢谢!
R上。
答案 0 :(得分:1)
这是dplyr
解决方案
tab <- read.table(text="R sp N Hauteur Alt Plot Quadrat Microhab Cover
R2 B 1 0-50cm 350 P1 Q1 TA 50
R2 D 1 0-50cm 350 P1 Q1 TA 50
R3 A 2 0-50cm 550 P1 Q1 TA 95
R3 C 1 0-50cm 550 P1 Q1 TA 95
R3 B 3 0-50cm 550 P1 Q1 TA 95
R3 D 4 0-50cm 550 P1 Q1 TA 95
R4 C 3 0.5-1m 350 P1 Q1 TB 50
R4 A 4 0.5-1m 350 P1 Q1 TB 50
R4 E 2 0.5-1m 350 P1 Q1 TB 50
R4 D 3 0.5-1m 350 P1 Q1 TB 50
R4 B 4 0.5-1m 350 P1 Q1 TB 50",head=TRUE)
library(dplyr)
tab %>% group_by(sp) %>%
summarize(n=n(),
Altmin=min(Alt),
Altmax=max(Alt),
Altmoy=mean(Alt),
nb_350.549=sum(ifelse(Alt >= 350 & Alt < 550,1,0)),
nb_550.749=sum(ifelse(Alt >= 550 & Alt < 749,1,0))) %>%
mutate(f_350.549=nb_350.549/n*100,
f_550.749=nb_550.749/n*100)
Source: local data frame [5 x 9]
sp n Altmin Altmax Altmoy nb_350.549 nb_550.749 f_350.549 f_550.749
1 A 2 350 550 450.0000 1 1 50.00000 50.00000
2 B 3 350 550 416.6667 2 1 66.66667 33.33333
3 C 2 350 550 450.0000 1 1 50.00000 50.00000
4 D 3 350 550 416.6667 2 1 66.66667 33.33333
5 E 1 350 350 350.0000 1 0 100.00000 0.00000