R: Trouver le Maximum de Point dans un jeu de données

0

La question

Je suis l'aide de la R langage de programmation. Supposons que j'ai les données suivantes:

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

Quand vous regardez ces données:

 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

Ma Question: Est-il un moyen de savoir si ce jeu de données contient un point tel que

  • toutes les valeurs de "a" sont plus petits que la coordonnée de ce point ET
  • toutes les valeurs de "b" sont plus petits que le b-les coordonnées de ce point

Existe-t-il un moyen de savoir si ce jeu de données contient un "global maximum de point"?

enter image description here

Par exemple, comme le point rouge au-dessus. Je sais que dans la plupart des cas, il est rare de trouver un tel point, vu que le point le plus important d'une coordonnée ne sera pas nécessairement le plus grand b-coordonner et vice-versa:

#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

Comme nous pouvons le voir, la ligne avec la valeur max de "a" ne contiennent pas la valeur max de "b".

Merci!

Remarque: Dans le monde réel, il est souvent impossible de trouver des "global maximum de points", comme dans le big data, les points de "chevauchement" (différentes lignes contiennent un maximum de différentes colonnes). Dans le cadre de problèmes d'optimisation, plusieurs points peuvent souvent répondre à ces critères et sont tous considérés comme appropriés - ces points sont appelés "non-dominé" et dit être située sur la Frontière de Pareto" (la ligne verte):

enter image description here

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

La meilleure réponse

1

Voici un moyen. Depuis le numéro de ligne est 0, il n'y a pas de point à la fois a et b sont maximum.

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: je vous remercie pour votre réponse! J'ai essayé de faire un exemple où j'ai dessein ajouter un maximum de point et cela a fonctionné!
stats555

bibliothèque(dplyr) a = rnorm(100000,10,10) b = rnorm(100000,10,10) my_data = données.cadre(a,b) a = rnorm(1,100,1) b = rnorm(1,100,1) my_data_1 = données.cadre(a,b) final_data = rbind(my_data, my_data_1) final_data %>% filtre(if_all(.pn = ~.x == max(.x)))
stats555

Dans d'autres langues

Cette page est dans d'autres langues

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