Hola.

Seguro que hay muchas formas de hacerlo, pero si los elementos de tu lista
son factores y tienen exactamente los mismos 'levels', bastaría con:

do.call("rbind", lapply(lis, function(x) table(x)))

o si prefieres una lista como dices en la pregunta:

aux <- as.list(as.data.frame(do.call("rbind", lapply(lis, function(x)
table(x)))))
lapply(aux, function(x) which(x > 0))

Si los elementos no son factores o no tienen los mismos niveles; puedes
convertirlos a factores previamente:

lis <- lapply(lis, function(x) {x <- factor(x, levels =
unique(unlist(lis))); x})

Un saludo



El 18 de octubre de 2011 10:52, <Guillermo.Vinue@uv.es> escribió:

> Hola,
>
> Tengo una lista, llamada lis, cuyos elementos son los siguientes:
>
> >lis
> [[1]]
> [1] "Pepe"
> [2] "Miguel"
> [3] "Enrique"
>
> [[2]]
> [1] "Miguel"
> [2] "Jose"
>
> [[3]]
> [1] "David"
> [2] "Pepe"
>
> Me gustaría obtener en qué elementos de la lista se encuentra cada
> nombre, es decir, quisiera obtener un resultado como el siguiente:
>
> "Pepe" está en el elemento 1 y 3 (lis[[1]] y lis[[3]]).
> "Miguel" está en el 1 y en el 2.
> "Enrique" está en el 1 ... y así sucesivamente.
>
> He estado probando distintas sentencias con la función grep pero no
> obtengo el resultado deseado, ¿alguien me puede dar alguna idea?.
>
> Muchas gracias,
>
> Guillermo
>
> _______________________________________________
> R-help-es mailing list
> R-help-es@r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es
>

	[[alternative HTML version deleted]]

