Предполагая, что ваши элементы являются data.frames, вы можете поместить их в список, а затем работать с каждым элементом одновременно. Эта реализация находит строку с минимальным значением hp
и выводит ее список. В результате получается список, который можно свернуть в data.frame, используя do.call
. Если вам нужен источник элемента (то есть, из какого источника data.frame он был), решение более сложное, но ничего особенного.
Значения в этих
xy <- split(mtcars, f = mtcars$cyl)
out <- sapply(xy, FUN = function(x) {
x[which.min(x$hp), ]
}, simplify = FALSE)
> out
$`4`
mpg cyl disp hp drat wt qsec vs am gear carb
Honda Civic 30.4 4 75.7 52 4.93 1.615 18.52 1 1 4 2
$`6`
mpg cyl disp hp drat wt qsec vs am gear carb
Valiant 18.1 6 225 105 2.76 3.46 20.22 1 0 3 1
$`8`
mpg cyl disp hp drat wt qsec vs am gear carb
Dodge Challenger 15.5 8 318 150 2.76 3.52 16.87 0 0 3 2
> do.call(rbind, out)
mpg cyl disp hp drat wt qsec vs am gear carb
4 30.4 4 75.7 52 4.93 1.615 18.52 1 1 4 2
6 18.1 6 225.0 105 2.76 3.460 20.22 1 0 3 1
8 15.5 8 318.0 150 2.76 3.520 16.87 0 0 3 2