R - 列出因子2的级别超过2级因子2

时间:2018-06-13 11:03:23

标签: r list factors levels

我有一个基于博物馆藏品的物种分布数据集。我想要做的是列出收集了超过2种(因子)的集合城镇(因子)。

谢谢!

1 个答案:

答案 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)