r - 在 dplyr 中获取最小值
问题描述
我想在 dplyr 中编写一个代码,我可以在其中取两个连续行的最小值
A <- data.frame(
y = c("A", "B", "C", "D", "E", "F"),
value = c(1, 2, 3, 4, 5, 6))
A
# y value
# 1 A 1
# 2 B 2
# 3 C 3
# 4 D 4
# 5 E 5
# 6 F 6
期望的输出
y value
A 1
C 3
E 5
我想使用 dplyr 包
我用于按名称分组的一般代码是
z <- x %>%
group_by(name)%>%
filter(value == min(value))
我想不出“如何在 R 或 dplyr 中编写“连续行”
解决方案
您只需要创建一个适当的分组变量:
A %>% mutate(grp = rep(0:(n() - 1) %/% 2 ) %>%
group_by(grp) %>%
slice(which.min(x))
# # A tibble: 3 x 3
# # Groups: grp [3]
# y x grp
# <fct> <dbl> <int>
# 1 A 1 1
# 2 C 3 2
# 3 E 5 3
推荐阅读
- ios - 调整启动屏幕故事板以启动具有固定大小的图像
- java - 当数字达到小数点后 3 位时如何停止 while 循环?
- c++ - 现代 C++ - 如何使用 std::optional 和引用实现 FirstOrDefault
- python-3.x - (1045,“用户'root'@'ip-address'的访问被拒绝(使用密码:YES)”)在python
- windows - 如何通过删除文件名中最后一次出现“by”和之后的所有内容来重命名几千个文件
- javascript - 如何使用 javascript 和关键字 this 更改背景图像
- c - 我想打印出输入次数最多的文本
- javascript - 在图像的不同坐标上多次缩放后计算鼠标位置
- r - 在 r 中绘制具有指数移动平均线的股票价格
- sql-server - T-SQL 是否具有在事务开始时读取行的机制?