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

Responder a