如何根据dplyr中的条件进行过滤?

极大主义
ID val1 val2
a  1  6
a  1  6
a  3  2
a  4  2
a  5  5
b  2  3
b  2  2
c  3  2
c  4  4
c  5  5
c  6  6
c  5  2
c  2  3

使用

dat <-df %>%
  group_by(ID) %>%
  summarise(corr=cor(val1, val2)) 

这将为每个组计算val1和val2的相关性。但是我只想对出现3次以上的ID进行过滤。基本上,我想计算每个ID的出现次数(例如a = 5,b = 2,c = 6),并且仅计算出现次数超过3的那些ID的相关性(在这种情况下,b将为被忽略,因为它发生了两次)。

这是大型数据库的一部分。

如何使用dplyr?

mdgbeck

对于小于2的情况,这将为您提供不包含任何内容的输出。

dat <- df %>%
  group_by(ID) %>%
  mutate(N = n()) %>%
  filter(N >= 3) %>%
  summarise(corr = cor(val1, val2))

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章