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....