2015-05-29 21 views
9

Ho il seguente data.frame e voglio eseguire alcuni calcoli sulla seconda colonna.R * non significativo per i fattori ERRORE

> 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 

Come si può vedere, la 2a colonna non include solo numeri. Ho omesso questi casi:

> 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 

Ma quando provo a fare un calcolo in una nuova colonna questo è quello che ottengo:

> 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 

Perché succede questo? Eventuali suggerimenti?

risposta

12

new[,2] è un fattore, non un vettore numerico. Trasformalo per primo

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

Ricordare alle persone di leggere le R-FAQ dove questo e molti altri bit di informazioni sono distribuiti con ogni copia di R. –

Problemi correlati