R * n'a pas de sens pour les facteurs d'ERREUR
J'ai les données suivantes.cadre et je veux effectuer certains calculs sur la 2ème colonne.
> test
code age
1 101 15
2 102 25
3 103 16
4 104 u1
5 105 u1
6 106 u2
7 107 27
8 108 27
Comme vous pouvez le voir, la 2ème colonne ne comprennent pas seulement des nombres. J'ai omis ces cas:
> new<-subset(test,code<104 | code>106)
> new
code age
1 101 15
2 102 25
3 103 16
7 107 27
8 108 27
Mais quand j'essaie de faire un calcul dans une nouvelle colonne, c'est ce que j'obtiens:
> new["MY_NEW_COLUMN"] <- NA
> new
code age MY_NEW_COLUMN
1 101 15 NA
2 102 25 NA
3 103 16 NA
7 107 27 NA
8 108 27 NA
> new$MY_NEW_COLUMN <-new[,2] * 5
Warning message:
In Ops.factor(new[, 2], 5) : * not meaningful for factors
Pourquoi est-ce arrivé? Toutes les suggestions?
OriginalL'auteur mboon | 2015-05-29
Vous devez vous connecter pour publier un commentaire.
new[,2]
est un facteur, pas un vecteur numérique. La transformer premièrepourquoi ne pas directement.numérique(nouveau[,2]) ? je veux savoir la différence
voir
?as.numeric()
: "Si ‘x’ est un ‘facteur’,‘.numérique’ sera de retour le sous-jacent numérique (entier) de la représentation, qui est souvent vide de sens comme il peut ne pas correspondre au facteur de "niveaux".".OriginalL'auteur scoa