[R-es] Completar un for, que falla al faltarle algún dato.

Juan Abasolo ju@n@@b@@olo @ending from ehu@eu@
Dom Jul 8 00:25:03 CEST 2018


Buenas noches;
Además del proyecto que comenté antes y con el que sigo discutiendo,
también me estoy peleando con otro... con el que también tropiezo.

Necesito reordenar los datos presentados en dos columnas a filas y
columnas.

Los datos ideales serían algo así:

Ques <- c(rep("Q1",3),rep("Q2",3),rep("Q3",3))
Info <- rep(c("aca", "ahi", "alla"),3)
Answ <- c("casa", "bulo", "hogar", "mama", "mami", "vieja", "perro", "can",
"rope")

df.raw <- data.frame(ID, Ques, Info, Answ)


Pero, como no son ideales, se parecen a esto:

df.raw1 <- df.raw[-2,]

# Necesito un dataframe con una estructura así:

df.ok <- data.frame(matrix(ncol = length(levels(df.raw$Ques)), nrow =
length(levels(df.raw$Info))))

names(df.ok) <- levels(df.raw$Ques)
rownames(df.ok) <- levels(df.raw$Info)

# que incluya los datos de 'Answ' en donde correspondería

J <- levels(df.raw$Ques)
K <- levels(df.raw$Info)

# El ideal me queda resuelto con esto:

for (j in J){
        sdf <- subset(df.raw, df.raw$Ques==j)
        for(k in K){
                x <- sdf[which(sdf$Info==k), "Answ"]
                df.ok[k,j] <- as.character(x)
        }
}

Pero si en la segunda linea sustituyo df.raw por df.raw1

for (j in J){
        sdf <- subset(df.raw1, df.raw1$Ques==j)
        for(k in K){
                x <- sdf[which(sdf$Info==k), "Answ"]
                df.ok[k,j] <- as.character(x)
        }
}

, ahí me da error.

¿Hay alguna forma de que asigne "" o NA o algo a quitar luego? O packete
que haga el trabajo u orden para salvar lo que venía haciendo yo?

Presupongo que será otra de esas respuestas evidentes, y disculpen lo largo
de la exposición.

Desde ya, muchas gracias

-- 
Juan Abasolo

Hizkuntzaren eta Literaturaren Didaktika Saila
Bilboko Hezkuntza Fakultatea
Euskal Herriko Unibertsitatea
UPV/EHU

Sarriena auzoa z/g
48940 Leioa
Bizkaia

	[[alternative HTML version deleted]]



Más información sobre la lista de distribución R-help-es