Resuelto! Encontré el truco para que funcione,Tenía que cambiar el comando:
prob.P.T1 <- predict(chaid2.T1, pruebaT1, type="prob") por prob.P.T1 <- predict(chaid2.T1, newdata=pruebaT1, type="prob") y entonces funciona: pruebaT1$prob<-prob.P.T1[,2] Saludos El 14 de julio de 2015, 16:22, Oscar Benitez <[email protected]> escribió: > Hola > Estoy tratando de aplicar probabilidades mediante predict a una base de > prueba y no consigo manejar los valores perdidos. > > No tengo problemas en la generación de las probabilidades, el comando es: > > #genera las probabilidades en prueba > prob.P.T1 <- predict(chaid2.T1, pruebaT1, type="prob") > > El data frame 'pruebaT1' tiene 33527 registros > La matriz 'prob.P.T1' tiene 66724 elementos, o sea 33362 registros. Esto > me dice que hay algunos casos para los cuales no fué capaz de establecer la > probabilidad. Esperaba esa situación. > > El problema es cuando trato de unir las probabilidades desde la matriz al > data frame. El comando: > > pruebaT1$prob.T1<-prob.P.T1[,2] > > Me da el siguiente error > > Error in `$<-.data.frame`(`*tmp*`, "prob.T1", value = c(0.42910447761194, > : > replacement has 33362 rows, data has 33527 > > > El comando > > prueba.T1<-merge(pruebaT1, prob.P.T1[,2],by="row.names", > all.x = TRUE) > > No da error, pero no estoy seguro que la unión por el número de fila sea > correcto. Estuve inspeccionando la matriz resultante del predict y no veo > saltos en la numeración de las filas.... > > Para poner un ejemplo, > > Digamos que en mi dataframe 'pruebaT1´tengo lo siguiente > > RowN Var1 Var2 1 a 1 2 b 2 3 a 3 4 b 4 5 a 1 6 b > 7 a 3 8 b 4 9 a 1 10 b 2 > > Cuando aplico la función predict a estos datos obtengo solamente 9 filas, > lo cual es correcto. Pero cuando las veo con el comando: > > view(prob.T1) > > las filas están numeradas de 1 a 9... > > Eso me lleva a preguntarme si el comando merge es el mejor para estos > casos.... > > Para que quede claro, lo que quiero que ocurra es lo siguiente: > > RowN Var1 Var2 prob.T1 1 a 1 0.03 2 b 2 0.05 3 a 3 0.06 4 b 4 0.03 > 5 a 1 0.05 6 b > NA 7 a 3 0.03 8 b 4 0.03 9 a 1 0.05 10 b 2 0.06 > > Y no encuentro la manera de hacerlo. > > Cualquier sugerencia es bienvenida. > Gracias de antemano, > Oscar > > -- > Oscar Benitez > -- Oscar Benitez [[alternative HTML version deleted]] _______________________________________________ R-help-es mailing list [email protected] https://stat.ethz.ch/mailman/listinfo/r-help-es
