[R-es] Optimizar código

Carlos Ortega
Wed, 07 Feb 2018 02:57:49 -0000

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 en 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 en r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es
>



--
Saludos,
Carlos Ortega