2 votes

Fonction pour la table logique

J'ai donc cette fonction pour le calcul logique (diagrammes de Venn) mais je ne peux pas rendre la fonction universelle pour n'importe quel dataframe de n'importe quelle taille

Cette fonction ne fonctionne que pour les cadres de données fournis (seulement quatre colonnes).

how_much = 5000000
A <- sample(how_much, replace = TRUE, x = 1:5) 
B <- sample(how_much, replace = TRUE, x = 1:5)
C <- sample(how_much, replace = TRUE, x = 1:5)
D <- sample(how_much, replace = TRUE, x = 1:5)

VennData = data.table(A, B, C, D)

Venn_Counts <- function(dataset, unique_number, operator) {
  message("Operator arrgument are: `==` or`<` or `<=` or `>` or `>=`")
  if(inrange(unique_number, 1, 35) ){
    dataset %>% as_tibble() %>% 
      mutate(A = (operator(A, unique_number)),
             B = (operator(B, unique_number)),
             C = (operator(C, unique_number)), 
             D = (operator(D, unique_number))) %>%
      count(A, B, C, D)
  }
  else {
    print("Unique number must be in range from 1 to 5")
  }
}

Venn_Counts(VennData, 2, operator = `<=`)

comment rendre la fonction ci-dessus universelle pour un dataframe qui aurait plus de colonnes ?

pour les objets plus petits, on obtiendrait quelque chose comme : le réglage des arguments est nombre_unique = 3, opérateur = ==

count    A      B
 24     TRUE   TRUE
 20     TRUE   FALSE
 13     FALSE  TRUE
 43     FALSE  FALSE

quand nous pouvons voir que nous avons 24 observations où A et B sont tous deux égaux à 3, 20 observations où A est égal à 3 et B non égal à 3, 13 observations où A n'est pas égal à 3 et B égal à 3 etc....

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X