2011-07-05 17 views
8

Tengo un dataframe en R con tres variables nombradas por ejemplo df$V1, df$V2, df$V3. df$V1 y df$V2 son ambos factores, mientras que df$V3 es numérico.R: convirtiendo el dataframe a la tabla

df <- data.frame(
    V1 = letters[1:4], 
    V2 = rep(LETTERS[1:3], each = 4), 
    V3 = 1:12 
) 

Busco una forma de crear una tabla que contiene los valores de df$V3, con df$V1 como las filas y las columnas como df$V2.

Probé variaciones en la tabla, pero no llegué a ninguna parte. Tal vez alguien podría ayudar, Gracias de antemano, Davy.

+0

Esto [pregunta similar] (http://stackoverflow.com/a/9617424/210673) ahora tiene una lista de las diversas formas de hacerlo – Aaron

Respuesta

17

Esta es una alternativa a table:

xtabs(V3 ~ V1 + V2, df) 
6

Según lo mencionado por ran2, puede usar el paquete reshape. Aquí está un ejemplo:

df <- data.frame(V1 = factor(sample(letters[1:5],100,replace=TRUE)), 
       V2 = factor(toupper(sample(letters[1:5],100,replace=TRUE))), 
       V3 = runif(100)) 
library(reshape) 
cast(df, V1 ~ V2, mean) 
+3

Ver también 'reshape2' que es mucho más rápido – hadley

Cuestiones relacionadas