web-dev-qa-db-fra.com

R * non significatif pour les facteurs ERREUR

J'ai le data.frame suivant et je souhaite effectuer quelques 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 comprend pas que des chiffres. 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 lorsque j'essaie de faire un calcul dans une nouvelle colonne, voici 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 cela se produit-il? Aucune suggestion?

12
mboon

new[,2] est un facteur, pas un vecteur numérique. Transformez-le d'abord

new$MY_NEW_COLUMN <-as.numeric(as.character(new[,2])) * 5
21
scoa