Функция Парето с DataFrames в Julia?
Вы знаете, где я могу найти функции max() min() для DataFrames в Julia? Фрейм данных включает координаты X,Y,Z. Я хочу найти максимальное значение для точки с наивысшими координатами x и y. Или мне следует сделать это с помощью "цикла for" и "if condition"?
1. РЕДАКТИРОВАТЬ: Например, у меня есть разные точки с координатами X,Y,Z, и я действительно хочу найти точку с самой высокой координатой X. Я сделал это с сортировкой фрейма данных. Но как насчет того, чтобы найти точку с наивысшими координатами X и Y? В сочетании... из всех остальных точек данных.
2. РЕДАКТИРОВАТЬ: Парето отлично работает в этом случае, возможно, это было мое неправильное объяснение. Как использовать этот принцип, чтобы все частицы вращались по кругу? Цель состоит в том, чтобы получить все связанные частицы -> замкнутый круг, конечно, это только приближение к кругу. Примеры условий для достижения круга:
- Точка: максимум по X и Y
- Точка: минимум X и Y
- Точка: максимум X и максимум Y /2
- Точка: X максимум /2 и Y максимум
- ...
Спасибо!
1 ответ
Сначала сгенерируйте данные:
julia> using DataFrames, PyPlot
julia> df = DataFrame(x=rand(1000), y=rand(1000));
julia> filter!(sdf -> sdf.x^2+sdf.y^2 < 1, df);
julia> scatter(df.x, df.y);
Теперь вы устанавливаете фронт Парето:
julia> sort!(df, rev=true);
julia> pareto = df[1:1, :];
julia> foreach(row -> row.y > pareto.y[end] && push!(pareto, row), eachrow(df));
julia> scatter(pareto.x, pareto.y);
(у вас есть точки, принадлежащие фронту Парето, выделенные оранжевым цветом)