我有以下数据集:
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
我想在第二列的每组中的第四,第五和第六列中找到最小值(即,三组分别是1、2和3)。最小值不应为零。为此,我做了以下工作:
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 package(v0.3.0)创建于2019-06-19
关于r - 使用聚合函数查找每个组中不为零的最小值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56666121/