Esta es otra forma: CADENA_1<-c("caliente","frío","gordo","flaco") CADENA_2<-c("bueno","malo","bueno","malo") CADENA<-rbind(CADENA_1,CADENA_2) CADENA<-t(CADENA) LISTA<-c("caliente","perro","flaco","gato","coche")
# ------- CADENA <- CADENA_2 names(CADENA) <- CADENA_1 CADENA[LISTA] -> RESULTADO RESULTADO[!is.na(RESULTADO)] On 07/02/18 03:57, Carlos Ortega wrote:
Hola, Esta es una forma...str_1 <- c("caliente","frío","gordo","flaco") str_2 <- c("bueno","malo","bueno","malo") str_3 <- cbind(str_1, str_2) l_val <- c("caliente","perro","flaco","gato","coche") row_god <- which(l_val %in% str_3[,1], arr.ind = TRUE ) row_god[1] 1 3 Saludos, Carlos Ortega www.qualityexcellence.es El 6 de febrero de 2018, 23:15, Fernando Sanchez via R-help-es < r-help-es@r-project.org> escribió:Hola a todos, Os pongo aquí debajo un pequeño fragmento de código. Resulta que dispongo de una CADENA que tiene dos columnas. Una con palabras y la otra que dice si es bueno o malo. En otra variable tengo una LISTA. Quiero cruzar todas las palabras de la lista con todas las de la cadena y cuando alguna coincida, que me indique en qué fila está y también si la palabra es "buena" o "mala". El código que os pongo más abajo funciona, pero es poco eficiente cuando las listas son más largas. Se os ocurre otra forma de programarlo más elegantemente en R. CADENA_1<-c("caliente","frío","gordo","flaco")CADENA_2<-c(" bueno","malo","bueno","malo")CADENA<-rbind(CADENA_1,CADENA_ 2)CADENA<-t(CADENA)LISTA<-c("caliente","perro","flaco","gato","coche") for (i in 1:nrow(CADENA)) {for (j in 1:length(LISTA)) {if(toString(LISTA[j])==toString(CADENA[i,1])) {print(paste("fila:",j,CADENA[i,2],sep=" "))}}} Un saludo y muchas gracias a todos. [[alternative HTML version deleted]] _______________________________________________ R-help-es mailing list R-help-es@r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es
-- +-------------------------------------------------------------- | Francisco J. Viciana Fernández | Dpto. Indicadores Demográficos | Servicio de Estadísticas Demográficas y Sociales | Instituto de Estadística y Cartografía de Andalucía | Leonardo Da Vinci, nº 21. Isla de La Cartuja. | 41071 SEVILLA. | franciscoj.vici...@juntadeandalucia.es +--------------------------------------------------------------
<<attachment: franciscoj_viciana.vcf>>
_______________________________________________ R-help-es mailing list R-help-es@r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es