[R-es] Error en fix.by(by.x, x) : 'by' must specify valid column(s)

Carlos J. Gil Bellosta cgb en datanalytics.com
Mar Feb 5 21:40:46 CET 2013


Hola, ¿qué tal?

Lo más probable es que quieras usar

?expand.grid

Un saludo,

Carlos J. Gil Bellosta
http://www.datanalytics.com

El día 5 de febrero de 2013 21:36, Carlos Ortega
<cof en qualityexcellence.es> escribió:
> Hola Marta,
>
> Lo siento pero no sé muy bien lo que quieres hacer.
>
> Primero defines A1 como un objeto tipo "contrast" que es un data.frame.
> Y luego con cbind lo transformas en una matriz, pero cuyos elementos son
> *solamente* los niveles de A1.
>
>> A1
> [1] 1 2 3 4
> attr(,"contrasts")
>   2 3 4
> 1 0 0 0
> 2 1 0 0
> 3 0 1 0
> 4 0 0 1
> Levels: 1 2 3 4
>> cbind(A1)
>      A1
> [1,]  1
> [2,]  2
> [3,]  3
> [4,]  4
>
> Y cuando haces un merge con F2
>> F2
>   x y
> 1 1 1
> 2 2 1
> 3 1 2
> 4 2 2
>
> obtienes F1...
>
>> F1
>    x y A1
> 1  1 1  1
> 2  2 1  1
> 3  1 2  1
> 4  2 2  1
> 5  1 1  2
> 6  2 1  2
> 7  1 2  2
> 8  2 2  2
> 9  1 1  3
> 10 2 1  3
> 11 1 2  3
> 12 2 2  3
> 13 1 1  4
> 14 2 1  4
> 15 1 2  4
> 16 2 2  4
>
> F1 es un data.frame en el que las columnas x,y están tantas veces repetidas
> como los valores diferentes de cbind(A1).
> ¿Estás queriendo definir un conjunto variado de experimentos o algo así?...
>
> Si nos dices qué objetivo tienes, y de qué datos/hipótesis partes, será más
> fácil ayudarte.
>
> Saludos,
> Carlos Ortega
> www.qualityexcellence.es
>
>
> El 5 de febrero de 2013 20:48, marta Garcia <marta000garcia en gmail.com>escribió:
>
>> gracias estimado Carlos,
>> lo arregle así:
>>
>> A1 <- factor(c(1,2,3,4))
>> contrasts(A1) <- contr.treatment(4,1)
>> A2 <- factor(c(1,2))
>> contrasts(A2) <- contr.treatment(2,1)
>> A3 <- factor(c(1,2))
>> contrasts(A3) <- contr.treatment(2,1)
>> F2 <- merge(A3, A2)
>>
>> F1<-merge(F2,cbind(A1))  # acá coloque cbind espero no tener problemas con
>> lo que sigue
>> F1
>>
>>
>>
>> con cbind fue la forma como me unio, F2 , A1 está bien la forma?
>>
>>
>> El 5 de febrero de 2013 14:03, Carlos Ortega <cof en qualityexcellence.es>escribió:
>>
>> Hola marta,
>>>
>>> El problema, todavía, no es con el "logit".
>>> El problema que estás teniendo es a la hora de definir F1.
>>>
>>> La función "merge()" solo funciona cuando quieres juntar *dos*
>>> data.frames y tú estás queriendo juntar tres: A3, A2, A1.
>>> Mira el detalle de la función merge() para entender como aplicarla,
>>> primero con A3 y A2 y luego A1.
>>>
>>> Para lo que estás haciendo, por ahora, tampoco te hace falta ni la
>>> librería sqldf, ni la xtable.
>>>
>>> Saludos,
>>> Carlos Ortega
>>> www.qualityexcellence.es
>>>
>>>
>>> 2013/2/5 marta Garcia <marta000garcia en gmail.com>
>>>
>>>>  Gente soy principiante en R , trato de hacer un logit para la escuela
>>>> cuando corro las siguientes lineas me da el error:
>>>>
>>>> Error en fix.by(by.x, x) : 'by' must specify valid column(s)
>>>>
>>>> require(sqldf)
>>>> require(xtable)
>>>> source(file="c:/Users/Usuario/Desktop/R/libreria/.R")
>>>> k<-qnorm(0.05/2, mean=0, sd=1, lower.tail = FALSE, log.p = FALSE)
>>>>
>>>> A1 <- factor(c(1,2,3,4)) # factor1 con 4 niveles
>>>> contrasts(A1) <- contr.treatment(4,1) # 4 niveles con 1 de referencia
>>>> A2 <- factor(c(1,2)) # factor 2 , a 2 niveles
>>>> contrasts(A2) <- contr.treatment(2,1 )# primer nivel de referencia
>>>> A3 <- factor(c(1,2))
>>>> contrasts(A3) <- contr.treatment(2,1)
>>>> F1 <- merge(A3, A2,A1)
>>>>
>>>>
>>>> Ayuda, gracias de antemano
>>>>
>>>> _______________________________________________
>>>> R-help-es mailing list
>>>> R-help-es en r-project.org
>>>> https://stat.ethz.ch/mailman/listinfo/r-help-es
>>>>
>>>
>>>
>>>
>>> --
>>> Saludos,
>>> Carlos Ortega
>>> www.qualityexcellence.es
>>>
>>
>>
>
>
> --
> Saludos,
> Carlos Ortega
> www.qualityexcellence.es
>
>         [[alternative HTML version deleted]]
>
>
> _______________________________________________
> R-help-es mailing list
> R-help-es en r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es
>



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