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.
[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
A1
[1,] 1
[2,] 2
[3,] 3
[4,] 4
Y cuando haces un merge con F2
x y
1 1 1
2 2 1
3 1 2
4 2 2
obtienes 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