0
votes

R - Trouvez la valeur la plus / la plus moindre survenant et le ratio pour les colonnes dans un cadre de données

Compte tenu des données ci-dessous,

+-----------------------------+--------+--------+--------+--------+--------+
|                             | param1 | param2 | param3 | param4 | param5 |
+-----------------------------+--------+--------+--------+--------+--------+
| most_common_value           |      1 | a      | false  | NA     | 32ms   |
| ratio_of_most_common_value  |      1 | 0.6    | 0.8    | 1.0    | 0.4    |
| least_common_value          |      1 | b      | true   | NA     | 64ms   |
| ratio_of_least_common_value |      1 | 0.4    | 0.2    | 1.0    | 0.2    |
| unique_values               |      1 | 2      | 2      | 1      | 3      |
+-----------------------------+--------+--------+--------+--------+--------+


2 commentaires

Comment gérez-vous des "tirages"? C'est-à-dire pourquoi 32ms sont-ils plus communs que 128ms dans la dernière colonne?


@sindri_baldur - qui peut être lancé d'une pièce de monnaie - ce qui signifie soit d'entre eux.


3 Réponses :


0
votes

Vous pouvez utiliser la fonction frq du package SJMISC . xxx

La sortie n'est pas votre attente, mais elle peut déduire. < / p>


0 commentaires

1
votes

Voici quelque chose:

n <- nrow(df)

sapply(
  df[grep("param", names(df))],
  function(x) {
    ourt <- sort(table(x, useNA = "ifany"), decreasing = TRUE)
    nt <- length(ourt)
    c(
      most_common_value = names(ourt)[1],
      ratio_of_most_common_value = ourt[1] / n,
      least_common_value = names(ourt)[nt],
      ratio_of_least_common_value = ourt[nt] / n,
      unique_values = nt
    )
  }
)


                              param1 param2 param3  param4 param5 
most_common_value             "1"    "a"    "false" NA     "128ms"
ratio_of_most_common_value.1  "1"    "0.6"  "0.8"   "1"    "0.4"  
least_common_value            "1"    "b"    "true"  NA     "64ms" 
ratio_of_least_common_value.1 "1"    "0.4"  "0.2"   "1"    "0.2"  
unique_values                 "1"    "2"    "2"     "1"    "3"    


0 commentaires

0
votes

Si vous utilisez base r code>, le code suivant peut aider. xxx pré>

tel que P>

> res
                            param1 param2 param3 param4 param5
most_common_value                1      a  false   <NA>  128ms
ratio_of_most_common_value     1.0    0.6    0.8    1.0    0.4
least_common_value               1      b   true   <NA>   64ms
ratio_of_least_common_value    1.0    0.4    0.2    1.0    0.2
unique_values                    1      2      2      1      2


0 commentaires