Есть и другие способы сделать это, особенно если у вас очень большие данные. Вот несколько из них: for
-loop, sapply
и tapply
для цикла
for (i in LETTERS[1:3]) {
cat(i, 'Max =', max(df$x[df$y == i]), '\n')
cat(i, 'Min =', min(df$x[df$y == i]), '\n')
}
A Max = 94.10626
A Min = 53.28244
B Max = 88.41872
B Min = 79.04221
C Max = 46.20486
C Min = 5.510093
sapply
invisible(
sapply(LETTERS[1:3], function(i) {
cat(i, 'Max =', max(df$x[df$y == i]), '\n')
cat(i, 'Min =', min(df$x[df$y == i]), '\n')
})
)
A Max = 94.10626
A Min = 53.28244
B Max = 88.41872
B Min = 79.04221
C Max = 46.20486
C Min = 5.510093
tapply
min = with(df, tapply(x, y, min))
max = with(df, tapply(x, y, max))