[R-es] Selección de observaciones
Rubén Roa
rroa en azti.es
Vie Oct 8 14:59:45 CEST 2010
un poco 'convoluted' pero parece que hace lo que quieres en una linea
aa <- matrix(11:19,3,3)
k <- c(12,15)
cols <- 1:2
aa[which(match(aa[,cols],k,nomatch=0)!=0)[1],]
#[1] 12 15 18
HTH
R.
____________________________________________________________________________________
Dr. Rubén Roa-Ureta
AZTI - Tecnalia / Marine Research Unit
Txatxarramendi Ugartea z/g
48395 Sukarrieta (Bizkaia)
SPAIN
> -----Mensaje original-----
> De: r-help-es-bounces en r-project.org
> [mailto:r-help-es-bounces en r-project.org] En nombre de Ignacio
> Ramos Alvarez
> Enviado el: viernes, 08 de octubre de 2010 12:00
> Para: r-help-es en r-project.org
> Asunto: [R-es] Selección de observaciones
>
> Hola a todos.
> Estoy atascado en un sitio que no me he encontrado antes,
> debe ser fácil y rápido, a ver si alguien me puede ayudar.
>
> Puesto fácil, tengo:
>
> > aa <- matrix(11:19,3,3)
> > aa
> [,1] [,2] [,3]
> [1,] 11 14 17
> [2,] 12 15 18
> [3,] 13 16 19
>
> Quiero la fila cuyo primer elemento es 12 y el segundo 15.
>
> > aa[aa[,1:2] == (c(12,15)),]
> Error: (subscript) logical subscript too long
>
> ¿Entonces?
>
> > aa[aa[,1:2] == t(c(12,15)),]
> Error in aa[, 1:2] == t(c(12, 15)) : non-conformable arrays
>
> Puedo hacer, claro,
> > aa[aa[,1]==12 & aa[,2]==15,]
> [1] 12 15 18
>
> Pero necesito algo más "elegante" ya que la selección es
> sobre bastantes más columnas.
>
> Gracias de antemano y un saludo.
>
>
> --
> Ignacio Ramos Álvarez
> i.ramos.alvarez en gmail.com
>
> [[alternative HTML version deleted]]
>
>
Más información sobre la lista de distribución R-help-es