首页 > 解决方案 > 计算 R 中满足两个条件的数据集的平均值

问题描述

我想在 R 中找到按年份和 book_Id 分组的数据集的平均值。

我尝试使用 Tapply,但我只能在该函数中放置一个索引条件。

在 SQL 中,它看起来像

Select year, book_id, avg(users_read)
From
Where year = 2018 
Group by year, book_id

So my final table would like 

year  | book_id | avg(users_read)
2018.   1.         12
2018.   2.         8
2018.   3.         13

标签: rdataframeconditional-statements

解决方案


在 R 中的 SQL 代码的翻译将是 -

res <- aggregate(users_read~year + book_id, subset(df, year == 2018), mean)

或者在dplyr-

library(dplyr)

res <- df %>%
  filter( year == 2018) %>%
  group_by(book_id) %>%
  summarise(users_read = mean(users_read))

推荐阅读