Chaque fois que je dois recoder un ensemble de variables, j'ai la fonction de recoder des SPSS. Je dois admettre que c'est assez simple. Il y a une fonction similaire code> Fonction code> dans et si je cours: p> problème commence quand Je veux recoder des facteurs qui n'ont pas de niveaux égaux. Si un facteur, z, a des niveaux Autres fonctions de recode efficaces devrait suffire! P> P> voiture code> de la voiture CODE>, et cela fait le tour, mais présuppose que je veux faire effectuer les choses avec
facteur code>. < p> j'ai
data.frame code> avec plusieurs variables avec une plage de valeur de 1 à 7. Je souhaite "inverser" les valeurs variables, en remplacement des 1s avec 7s, 2s avec 6s, 3s avec 5s, 3s avec 5s, 3s avec 5s, 3s avec 5s, 3 Peut utiliser le facteur
code> fonction: p>
c ("1", "3", "4", "6", "7") code>, est-ce que je peux "inverser" les niveaux de "inverser" 1 = 7, 2 = 6, 3 = 5, etc. en utilisant le facteur code> Fonction p>
4 Réponses :
Oui, il suffit d'assigner à niveaux code>:
Il semble que je n'étais pas tout à fait concis avec ma question. Si j'ai des niveaux "incomplets", par exemple C ("2", "4", "5", "6") en les inversant que je vais obtenir c ("6", "5", "4", "2"), et je ne veux pas pour faire ça. Je veux remplacer les valeurs / les niveaux de sorte que 1 = 7, 2 = 6, 3 = 5, et vice versa. Est-ce que cela possible avec la fonction facteur / niveau, ou dois-je utiliser une voiture :: Recode () ??
Vous devez fournir des niveaux Vous pouvez le faire sur le facteur existant aussi p> Comme vous le voyez, les niveaux ont été étendus dans la commande désir. p> p> code> argument sur facteur (comme Dirk a écrit):
Merci pour celui-ci! Il semble que je sois trop fatigué et que je manque l'évidence. La solution était si simple ... merci encore une fois!
Si vous remplissez les niveaux de facteur, vous êtes prêt à partir:
df <- data.frame(x=factor(c(2,4,5,6))) df$x <- factor(df$x, levels = 7:1) table(df$x) 7 6 5 4 3 2 1 0 1 1 1 0 1 0
Dans ce cas, puisque vous avez des chiffres, pourquoi ne pas simplement transformer les chiffres à l'aide de l'arithmétique modulaire?
EG P>
levels(x) <- as.character((6*as.numeric(levels(x)))%%7+1)
Opérateur de modulus (reste), similaire à% en C / Java, etc., bien que je pense que les valeurs négatives soient traitées différemment.
Intéressant ... je vais essayer!