Pregunta

Esta pregunta ya tiene una respuesta aquí:

Estoy manipulando un marco de datos utilizando el paquete de remodelación. Al usar la función de fusión, factoriza mi columna de valor, que es un problema porque un subconjunto de esos valores son enteros en los que quiero poder realizar operaciones.

¿Alguien sabe de una forma de obligar a un factor a un entero? Usando as.character() Lo convertiré en el carácter correcto, pero no puedo realizar una operación inmediatamente, y as.integer() o as.numeric() Lo convertirá en el número que el sistema almacena ese factor como, lo cual no es útil.

¡Gracias!

Jeff

¿Fue útil?

Solución

Puedes combinar las dos funciones; coaccionar a los personajes de allí a los numéricos:

> fac <- factor(c("1","2","1","2"))
> as.numeric(as.character(fac))
[1] 1 2 1 2

Otros consejos

Citado directamente de la página de ayuda para factor:

Para transformar un factor F a sus valores numéricos originales, as.numeric(levels(f))[f] se recomienda y un poco más eficiente que as.numeric(as.character(f)).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top