r - 在R中,如果给定另一列中的值相等,我如何平均列中的值
问题描述
对我昨天问的一个问题进一步提问。
Year CW PIECE n
1 2018 31 Y5 A 11
2 2018 32 Y5 A 1
3 2018 33 Y5 A 2
4 2018 36 Y5 B 25
5 2018 37 Y5 B 5
同样,我有一个相当大的数据集。有没有一种简单的方法来循环查看 - 对于“PIECE”的每个唯一值(因此对于这个小样本,平均 Y5 A 值得到 4.67 和 Y5 B 得到 15)来平均列中的值“n”
解决方案
尝试使用dplyr
. 您可以分组PIECE
,然后使用mutate()
:
library(dplyr)
#Code
newdf <- df %>% group_by(PIECE) %>% mutate(Mean=mean(n,na.rm=T))
输出:
# A tibble: 5 x 5
# Groups: PIECE [2]
Year CW PIECE n Mean
<int> <int> <chr> <int> <dbl>
1 2018 31 Y5 A 11 4.67
2 2018 32 Y5 A 1 4.67
3 2018 33 Y5 A 2 4.67
4 2018 36 Y5 B 25 15
5 2018 37 Y5 B 5 15
或者summarise()
:
#Code2
newdf <- df %>% group_by(PIECE) %>% summarise(Mean=mean(n,na.rm=T))
输出:
# A tibble: 2 x 2
PIECE Mean
<chr> <dbl>
1 Y5 A 4.67
2 Y5 B 15
推荐阅读
- sql-server - 更改 Linux 上的默认 SQL Server 时区?
- python - Flask - 由于 functools.wraps,一条 Flash 消息不会消失?
- google-cloud-platform - 增加谷歌云平台的配额
- javascript - 如何在 JavaScript 中使用来自 Django 的 TextField?
- python - Python/Regex - 匹配与另一个正则表达式匹配的所有句子
- android-studio - Android Studio 4.0:杀死模拟器进程
- android - 如何检查用户是否已经在 Android Studio 中通过 Spotify 登录?
- wpf - 跨视图模型共享模型的 C# WPF 最佳实践
- python - Airflow BranchPythonOperator - 分支后继续
- google-maps - 使用 Google Cloud 中的长 TLD 限制 API 密钥访问?