[R-es] Optimizar código

Fernando Sanchez fernandsanche en yahoo.es
Mar Feb 6 23:15:41 CET 2018


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]]



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