使用dplyr筛选条件子集数据集
我想对一个数据帧进行子集,以从所有列中收集信息 我将使用使用dplyr筛选条件子集数据集,r,dplyr,subset,R,Dplyr,Subset,我想对一个数据帧进行子集,以从所有列中收集信息 我将使用msleep数据集解释这个问题 library(msleep) 我查看了一列genus的频率,以查看频率的分布 msleep %>% count(genus) %>% count(n) ## A tibble: 3 × 2 # n nn # <int> <int> #1 1 73 #2 2 2 #3 3 2 msleep%%>%count
msleep
数据集解释这个问题
library(msleep)
我查看了一列genus
的频率,以查看频率的分布
msleep %>% count(genus) %>% count(n)
## A tibble: 3 × 2
# n nn
# <int> <int>
#1 1 73
#2 2 2
#3 3 2
msleep%%>%count(属)%%>%count(n)
##一个tibble:3×2
#n nn
#
#1 1 73
#2 2 2
#3 3 2
我想提取主列中具有两次值的所有行
msleep %>% count(genus) %>% filter(n==2)
## A tibble: 2 × 2
# genus n
# <chr> <int>
#1 Equus 2
#2 Vulpes 2
msleep%%>%count(属)%%>%filter(n==2)
##一个tibble:2×2
#属
#
#1马2
#2秃鹫2
如何实现低于预期的产出
预期产出:
msleep[msleep$genus %in% c('Equus','Vulpes'),]
## A tibble: 4 × 11
# name genus vore order conservation sleep_total sleep_rem sleep_cycle awake brainwt bodywt
# <chr> <chr> <chr> <chr> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
#1 Horse Equus herbi Perissodactyla domesticated 2.9 0.6 1.00 21.1 0.6550 521.00
#2 Donkey Equus herbi Perissodactyla domesticated 3.1 0.4 NA 20.9 0.4190 187.00
#3 Arctic fox Vulpes carni Carnivora <NA> 12.5 NA NA 11.5 0.0445 3.38
#4 Red fox Vulpes carni Carnivora <NA> 9.8 2.4 0.35 14.2 0.0504 4.23
msleep[msleep$genus%在%c中('equis','Vulpes'),]
##一个tibble:4×11
#名称属vore顺序守恒睡眠总睡眠rem睡眠周期清醒脑体
#
#1匹驯养的野马2.9 0.6 1.00 21.1 0.6550 521.00
#2头驯养的毛驴3.1 0.4 NA 20.9 0.4190 187.00
#3北极狐秃鹫肉食动物12.5 NA NA 11.5 0.0445 3.38
#4红狐秃鹫肉食动物9.82.40.35 14.20.0504 4.23
任何获得预期产出的替代方法也值得赞赏
ps:有没有更好的方法来观察频率的频率?或者查看筛选条件(此处:n==2)?我们可以使用
按
分组,然后直接筛选
,而不是通过计数
方法
msleep %>%
group_by(genus) %>%
filter(n() ==2)
# A tibble: 4 x 11
# Groups: genus [2]
# name genus vore order conservation sleep_total sleep_rem sleep_cycle awake brainwt bodywt
# <chr> <chr> <chr> <chr> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
#1 Horse Equus herbi Perissodactyla domesticated 2.9 0.6 1.00 21.1 0.6550 521.00
#2 Donkey Equus herbi Perissodactyla domesticated 3.1 0.4 NA 20.9 0.4190 187.00
#3 Arctic fox Vulpes carni Carnivora <NA> 12.5 NA NA 11.5 0.0445 3.38
#4 Red fox Vulpes carni Carnivora <NA> 9.8 2.4 0.35 14.2 0.0504 4.23
msleep%>%
按(属)分组%>%
过滤器(n()==2)
#一个tibble:4x11
#群:属[2]
#名称属vore顺序守恒睡眠总睡眠rem睡眠周期清醒脑体
#
#1匹驯养的野马2.9 0.6 1.00 21.1 0.6550 521.00
#2头驯养的毛驴3.1 0.4 NA 20.9 0.4190 187.00
#3北极狐秃鹫肉食动物12.5 NA NA 11.5 0.0445 3.38
#4红狐秃鹫肉食动物9.82.40.35 14.20.0504 4.23
感谢您的帮助性回答。查看频率的最佳方式是什么?@Prradep抱歉,我没有听清你的问题。你是想得到一定比例的频率吗?很抱歉没有清晰地沟通。如何查看列中数值频率的分布/汇总?我的意思是如何更好地实现msleep%%>%count(genus)%%>%count(n)
的输出?@Prradep如果你在'n'上做第二次count
,那将只提供关于1、2和3的数量的信息,而不会给你genus
,它与表(table(table(msleep$genus))
相同,谢谢。基本方法来救援!dplyr中没有奇特的函数吗?