R: Najít Maximální Bod v Dataset

0

Otázka

Já jsem pomocí R programovací jazyk. Předpokládejme, že mám následující data:

set.seed(123)

a = rnorm(100000,10,10)
b = rnorm(100000,10,10)

my_data = data.frame(a,b)

plot(my_data$a, my_data$b)

enter image description here

Když se podíváte na tato data:

 head(my_data)
          a         b
1  4.395244 12.649934
2  7.698225 28.307475
3 25.587083  9.406217
4 10.705084  9.467906
5 11.292877 14.379042
6 27.150650 23.374490

Moje Otázka: existuje způsob, jak zjistit, jestli tento dataset obsahuje bod takový, že

  • všechny hodnoty "a" je menší než-ová souřadnice tohoto bodu A
  • všechny hodnoty "b" jsou menší než b-ová souřadnice tohoto bodu

Je tam takový způsob, jak zjistit, jestli tento dataset obsahuje "globální maximum"?

enter image description here

Například, jako červený bod výše. Vím, že ve většině případů, to je nepravděpodobné, že najít takový bod, když viděl, že bod s největší koordinovat nemusí nutně mít největší b-koordinovat a naopak:

#row with max value of "a"
which(my_data == max(my_data$a), arr.ind=TRUE)

       row col
[1,] 23102   1

#row with max value of "b"
 which(my_data == max(my_data$b), arr.ind=TRUE)
      row col
[1,] 2071   2

#display row with max value of "a"
> my_data[23102,]
             a        b
23102 53.22815 4.500006

#display row with max value of "b"
> my_data[2071,]
            a       b
2071 15.85992 52.0609

Jak můžeme vidět, řádek s maximální hodnotou "a" neobsahuje max hodnotu "b".

Díky!!!

Poznámka: V reálném světě, to je často nemožné najít "globální maximum body", jako ve velké datové body "překrývání" (různé řádky obsahují maximální hodnoty z různých sloupců). V rámci optimalizační problémy, několik bodů, může často splňují tato kritéria a jsou považovány za vhodné - tyto body se nazývají "non-ovládal" a řekl, že se nachází na "Pareto Hranici" (zelená linka):

enter image description here

data-manipulation data-visualization r
2021-11-23 03:50:41
1

Nejlepší odpověď

1

Tady je jeden způsob. Od řádku číslo je 0, není tam žádný takový bod s a i b je maximální.

library(dplyr)

my_data %>%
  filter(if_all(.fns = ~.x == max(.x)))
# [1] a b
# <0 rows> (or 0-length row.names)
2021-11-23 04:00:22

@ www: děkuji za vaši odpověď! Zkusil jsem udělat příklad, kde jsem cíleně přidat maximálně bod a fungovalo to!
stats555

(knihovna dplyr) = rnorm(100000,10,10) b = rnorm(100000,10,10) my_data = data.rámu(a,b) = rnorm(1,100,1) b = rnorm(1,100,1) my_data_1 = data.rámu(a,b) final_data = rbind(my_data, my_data_1) final_data %>% filter(if_all(.fns = ~.x == max(.x)))
stats555

V jiných jazycích

Tato stránka je v jiných jazycích

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................