A l'aide du tableau() pour créer 3 à fréquence variable tableau dans la R

Je suis nouveau sur R et la recherche de l'aide. Je comprends le problème suivant est assez simple et recherché des questions similaires. Aucun de nous donner la réponse, je suis à la recherche pour - toute aide serait appréciée.

Le problème:

La production d'un tableau de fréquences à l'aide de la table() fonction de trois variables avec les données dans le format:

    Var1    Var2   Var3
1   0        1        0
2   0        1        0
3   1        1        1
4   0        0        1

Où, 0 = Non et 1 = "Oui"

Et la table finale est dans le format suivant avec des variables et des valeurs étiquetées:

           Var3
           Yes   No
Var1  Yes   1     0
      No    1     2
Var2  Yes   1     2
      No    1     0

Ce que j'ai essayé jusqu'à présent:

En utilisant le code suivant, je suis capable de produire un 2 table variable, avec des étiquettes pour les variables, mais pas pour les valeurs (c'est à dire. Oui et non).

table(data$Var1, data$Var3, dnn = c("Var1", "Var3"))

Il ressemble à ceci:

      Var3
Var1  0  1
   0  2  1
   1  0  1

En essayant de l'étiquette de la ligne et de la colonne des valeurs (0 = Non et 1= Oui) je comprends row.names et responseName peut être utilisé, cependant, la tentative suivante d'une ligne d'étiquettes noms donne un all arguments must have the same length erreur.

> table(data$Var1, data$Var2, dnn = c("Var1", "Var2"), row.names = c("No", "Yes"))

J'ai aussi essayé d'utiliser ftable() cependant la forme de la table produites à l'aide du code ci-dessous n'est pas correct de mauvaises fréquences pour le problème. Le problème avec les étiquettes de ligne & col valeurs persiste.

> ftable(data$Var1, data$Var2, data$Var3, dnn = c("Var1", "Var2", "Var3"))
      Var3  0  1
Var1 Var2             
0     0     0  1
      1     2  0
1     0     0  0
      1     0  1

Toute aide pour l'utilisation de table() à produire un tableau de la forme désirée serait grandement apprécié.

  • Convertir vos données en facteurs premiers de prendre soin de la question de l'étiquetage: dat <- data.frame(lapply(dat, factor, levels=1:0, labels=c("Yes","No")))
  • Merci, c'est très utile et est parfait pour résoudre le problème d'étiquetage.