我有一个基于博物馆藏品的物种分布数据集。我想要做的是列出收集了超过2种(因子)的集合城镇(因子)。
谢谢!
答案 0 :(得分:0)
从三个城市和20个物种(标记为数字以便于生成)生成30个观测值
df <- data.frame( city=as.factor( rep(c('NY', 'CH', 'LA'),10) ),
species=as.factor( sample(1:20, 30, replace=T) )
)
查看数据
table(df$city, df$species)
使用 plyr :
使用plyr包中的ddply计算每个城市物种的观察结果,并通过多次观察返回观察结果
ddply(df, .(city), .fun=function(x){
counts <- count(x$species)
counts[counts$freq > 1,]
})
导致
city x freq
1 CH 10 3
2 CH 12 2
3 LA 9 2
4 NY 1 2
5 NY 13 3
其中x是物种,freq是城市中物种的观测数量。
使用 dplyr :
df %>%
group_by(city) %>%
select(species) %>%
count() %>%
filter(freq>1)