关于dplyr包的两个非常基本的问题 让我们考虑菱形< /代码>数据。我想计算两件事:

关于dplyr包的两个非常基本的问题 让我们考虑菱形< /代码>数据。我想计算两件事:,r,dplyr,R,Dplyr,(1) 切割平均值==理想值 (2) 有多少钻石比10000贵$ 我目前的工作 library(dplyr) data(diamonds)<-data(diamonds) #First problem diamonds %>% group_by(cut) %>% summarize(Mean = mean(carat, na.rm=TRUE) cut Mean <ord> <dbl> 1 Fair 1.05 2

(1) 切割平均值==理想值

(2) 有多少钻石比10000贵$

我目前的工作

library(dplyr)
data(diamonds)<-data(diamonds)
#First problem 
diamonds %>%
group_by(cut) %>%
summarize(Mean = mean(carat, na.rm=TRUE)
  cut        Mean
  <ord>     <dbl>
1 Fair      1.05 
2 Good      0.849
3 Very Good 0.806
4 Premium   0.892
5 Ideal     0.703

#Second problem 
diamonds %>% 
summarize(sum(price> 6)) 
  `sum(price > 6)`
         <int>
 1            53940
库(dplyr)
数据(钻石)%
分组依据(切割)%>%
汇总(平均值=平均值(克拉,不适用,rm=真)
平均值
1公平1.05
2良好0.849
3非常好0.806
4溢价0.892
5理想值0.703
#第二个问题
钻石%>%
汇总(总额(价格>6))
`金额(价格>6)`
1            53940
你能告诉我两件事吗

(1) 我怎样才能从第一个函数中提取出理想的特征呢?我试着用基本的R函数来实现,但没有成功


(2) 你能检查一下我在第二个问题中的值是否有效吗?我是说我在互联网上找到了它,但我发现它非常不直观,
sum()
函数计算你的观察值。谢谢!

第一个问题你可以将过滤器(cut==“理想”)添加到管道中(见Daniels评论)

第二,价格超过10000美元的钻石:

library(dplyr)
library(ggplot2)

diamonds %>%group_by(cut) %>%
  summarize(Mean = mean(carat, na.rm=TRUE)) %>% filter(cut=="Ideal")
       

# diamonds priced over 10000:      

diamonds %>% filter(price > 10000) %>% tally()
## equivalent to:
diamonds %>% filter(price> 10000) %>% summarise(count=n())
## equivalent to:
nrow(diamonds[which(diamonds$price >  10000),])




对于第一个问题,您只需要
%%>%filter(cut='Ideal')
。第二个问题可以,但您也可以使用
filter(price>6)%%>%summary(count=n())
。求和有效,因为任何逻辑真/假值都等效于1/0值,所以您可以使用表达式为真的所有1的和。