 Estimados,  Carlos Ortega y Gil
lo que quiero hacer es esto mismo pero, con 3 factores (luego como tarea de
la Uni...para 4, 5...15)

A1 <- factor(c(1,2))# 2 niveles
> contrasts(A1) <- contr.treatment(2,1)# nivel 1 de referencia
> A2 <- factor(c(1,2,3))  # 3 factores
> contrasts(A2) <- contr.treatment(3,1)# nivel 1 de referencia
> F1 <- merge(A2,A1) #
> names(F1) <- c("A2", "A1")
> mFor <- formula(cbind(y, Ny) ~ A1 + A2)
> ####################################################
> y <- as.vector(cbind(55,56,89,78,96,65))
> y
[1] 55 56 89 78 96 65
> n <- as.vector(cbind(160,160,160,160,160,160))
> Ny <- n-y
> Dat <- data.frame(A1=F1$A1, A2=F1$A2, y, Ny, n)
> Dat
  A1 A2  y  Ny   n
1  1  1 55 105 160
2  1  2 56 104 160
3  1  3 89  71 160
4  2  1 78  82 160
5  2  2 96  64 160
6  2  3 65  95 160

Para eso hice lo que antes les mostré, pero no sé que tal, es correcto,
y sirve para 15 factores?

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
F1



con cbind fue la forma como me unio, F2 , A1 está bien la forma?


Gracias estimados










El 5 de febrero de 2013 16:06, Carlos Ortega <cof@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@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@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@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@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]]

