r - dplyr 中位数(按组)
问题描述
我有这个数据框
df1 <- data.frame(
Type1 = c("A","A","A", "AB", "AB"),
Type2 = c(1L,2L,2L, 1L, 1L),
Value = c(1L, 2L, 1L, NA, NA), , Median = c(1L, 1.5, 1.5, NA, NA))
我想通过 Type1 和 Type2 在新列中获取中位数到一个新变量“AB”,而不汇总在现有列中有一个新值。
df12 <- data.frame(
Type1 = c("A","A","A", "AB", "AB"),
Type2 = c(1L,2L,2L, 1L, 1L),
Value = c(1L, 2L, 1L, NA, NA), Median = c(1L, 1.5, 1.5, 1L, 1L))
我的尝试
df1 %>% group_by(Type1, Type2) %>% mutate(Median = ifelse(Type1 == "AB" & Type2 == 1, median(Value), Median))
解决方案
我们可能需要在这里删除分组
library(dplyr)
df1 %>%
mutate(Median = replace(Median, Type1 %in% 'AB' & Type2 %in% 1,
median(Value, na.rm = TRUE)) )
推荐阅读
- laravel - Laravel - 每天在 randon 选择五个用户
- c# - 如何将“06/22/2019 00:00:00”的字符串转换为格式为 2019/06/22 的有效 DateTime 类型,而不包含小时、分钟和秒的部分
- mysql - 使用从最后一个值到下一个填充值的值更新列
- scala - 在 Scala 中,特征定义名称后的大括号是什么意思?
- python - 使用 Selenium 从框架下的嵌套 HTML 代码中识别元素(确认没有 iframe)
- javascript - 如何使这段代码从项目中删除类名,并使用 getElementsByClassName 并使这个手风琴按我想要的方式工作?
- google-apps-script - 如何在 Google Script 上下文中保存 HTML 下拉列表值?
- ios - IB Designables:无法呈现和更新自动布局状态 - 代理崩溃
- javascript - 提供给“ReactiveComponent”的“object”,预期的“function”
- sql-server - 检查点和事务提交之间的关系是什么