Tengo dos tramas de datos, al igual que éstos:acelerar trama de datos a juego
data = data.frame(data=cbind(1:12,rep(c(1,2),6),rep(c(1,2,3),4)))
colnames(data)=c('v','h','c')
lookup = data.frame(data=cbind(c(rep(1,3),rep(2,3)),rep(c(1,2,3),2),21:26))
colnames(lookup)=c('h','c','t')
quiero restar de búsqueda $ t $ a partir de datos v donde el h y c columnas partido.
pensé que algo como esto funcionaría
data$v-lookup$t[lookup$h==data$h&lookup$c==data$c]
pero no mágicamente saber que quiero repetir implícita sobre las filas de datos
acabé haciendo esto
myt = c()
for(i in 1:12) {
myt[i] = lookup$t[lookup$h==data$h[i]&lookup$c==data$c[i]]
}
que funciona bien, pero espero que alguien pueda sugerir una forma más sensata que no implique un ciclo.
en realidad, son todas las cadenas, porque soy terrible en la creación de tramas de datos. ¡Gracias! – ansate
@ansate - FWIW, puede jugar con su opción 'stringsAsFactors' y las opciones' read.table' para que las cadenas se lean como factores por defecto. El valor predeterminado debe ser leer cadenas como factores. –