He escrito la siguiente función basada en subset()
, que me parece muy útil:subconjunto() de un vector en R
ss <- function (x, subset, ...)
{
r <- eval(substitute(subset), data.frame(.=x), parent.frame())
if (!is.logical(r))
stop("'subset' must be logical")
x[r & !is.na(r)]
}
Por lo tanto, puedo escribir:
ss(myDataFrame$MyVariableName, 500 < . & . < 1500)
en lugar de
myDataFrame$MyVariableName[ 500 < myDataFrame$MyVariableName
& myDataFrame$MyVariableName < 1500]
Esto parece algo para lo que otras personas podrían haber desarrollado soluciones, sin embargo, incluyendo algo en Core RI podría he perdido. ¿Hay algo por ahí?
todavía parece funcionar si cambiamos '' hoja.de.datos a '' lista y sospecho rendimiento mejorará (= x). . –
Buen punto @DWin. –
Para aclarar: acabo de utilizar 'myDataFrame $ MyVariableName' como ejemplo de un nombre de vector muy largo. Probablemente debería haber usado 'myVeryVeryLeryLongVariableName' o algo así, pero si lo edito ahora, la respuesta de @ joran no tendrá mucho sentido. =) –