r - 使用聚合函数找到每组不为零的最小值
问题描述
我有以下数据集:
6b9691fa 1 0 2 1 4
6b9691fa 1 1 -1 1 5
6b9691fa 1 2 3 0 4
6b9691fa 2 0 1 5 3
6b9691fa 2 1 0 5 3
6b9691fa 2 2 3 5 3
6b9691fa 3 0 10 1 9
6b9691fa 3 1 10 0 9
6b9691fa 3 2 10 1 9
我想在第 2 列的每组(即 1、2 和 3 三个组)的第 4、第 5 和第 6 列中找到最小值。最小值不应为零。为此,我执行了以下操作:
aggregate(dataset[,4:6], list(dataset$V2), min)
但这返回零。我能做些什么来避免最低限度的零?
解决方案
可能这就是你想要的:
dataset <- read.table(text = '6b9691fa 1 0 2 1 4
6b9691fa 1 1 -1 1 5
6b9691fa 1 2 3 0 4
6b9691fa 2 0 1 5 3
6b9691fa 2 1 0 5 3
6b9691fa 2 2 3 5 3
6b9691fa 3 0 10 1 9
6b9691fa 3 1 10 0 9
6b9691fa 3 2 10 1 9')
aggregate(x = dataset[, 4:6],
by = list(dataset[, 2]),
FUN = function(t) min(t[t != 0]))
#> Group.1 V4 V5 V6
#> 1 1 -1 1 4
#> 2 2 1 5 3
#> 3 3 10 1 9
由reprex 包(v0.3.0)于 2019 年 6 月 19 日创建
推荐阅读
- django - 如何在一个查询中获取多项结果的第一页
- javascript - 不必要的大括号
- oauth-2.0 - Microsoft OneDrive 的重定向 URI 是什么?
- azure-queues - 检查队列中的隐藏消息
- java - 无法打开由 maven 程序集插件创建的 jar
- javascript - 使用对象获取从客户端到节点服务器的请求
- reactjs - react-router-dom 条件渲染
- javascript - 浏览器绘画/渲染后触发
- batch-file - 这个批处理/命令脚本有什么问题?
- python - 有什么简单的方法可以在python中按浮点数降序排列标准?