Páginas

martes, 17 de junio de 2014

R Programming: Como filtrar una columna con la función subset()


> #Si tengo un data frame con las siguientes variables, o columnas:
> names(data)

[1] "Date"    "sulfate" "nitrate" "ID"    

> #Y deseo filtrar los valores de una columna, por ejemplo ID igual a uno:

> subset(data, ID == 1)

        Date sulfate nitrate ID
38    2/3/04    2.58   0.632  1
53   8/13/04    5.52   0.173  1
64  11/17/04    2.21   0.568  1
69   1/16/05    2.30   0.719  1
74   2/27/05    2.75   0.479  1
79    4/4/05    2.18   0.211  1
86   6/15/05    4.85   0.266  1
100  11/6/05    2.41   0.302  1
108 12/24/05    2.24   1.800  1

> #Puedo filtrar por varias columnas a la vez, con el operador y (&) o el o(|)

> subset(data, ID==5 & sulfate >=3)

        Date sulfate nitrate ID
633 10/12/03    5.99   0.428  5
663  7/14/04    3.54   0.576  5
667  8/19/04   12.20   0.223  5
674 10/12/04    3.09   0.466  5
676 10/18/04    3.61   0.372  5
679 10/30/04    7.37   0.590  5

> #Puedo filtrar una columna por un rango de valores con %in%

> subset(data, ID %in% 1:8)

         Date sulfate nitrate ID
38     2/3/04   2.580   0.632  1
53    8/13/04   5.520   0.173  1
64   11/17/04   2.210   0.568  1
69    1/16/05   2.300   0.719  1
74    2/27/05   2.750   0.479  1
79     4/4/05   2.180   0.211  1
86    6/15/05   4.850   0.266  1
100   11/6/05   2.410   0.302  1
108  12/24/05   2.240   1.800  1
182   10/6/03   7.210   0.651  2
184  10/30/03   2.420   0.507  2
190   12/5/03   3.150   0.669  2
201   2/27/04   4.400   0.602  2
204   3/16/04   3.460   0.351  2
219   7/26/04  10.900   0.295  2
234   12/5/04   2.030   1.200  2
237  12/29/04   3.410   1.160  2
240   1/28/05   2.870   1.200  2
244   2/21/05   4.170   0.553  2
247   3/17/05   4.190   0.993  2
260   8/26/05   7.680   0.404  2
264    9/1/05   6.650   0.226  2
273  11/18/05   1.630   0.559  2
356  10/24/03   3.470   0.363  3
358  11/11/03   1.430   0.474  3
374   4/21/04   2.420   0.531  3
399  10/24/04   4.190   0.221  3
404  12/11/04   2.110   0.429  3
408   1/10/05   4.960   0.537  3
411    2/3/05   1.530   0.460  3
418   4/22/05   2.740   0.409  3
419   5/16/05   4.640   0.204  3
423   6/21/05   7.250   0.355  3
429    8/8/05   2.680   0.191  3
442   2/16/06   2.700   1.030  3
510   1/22/04   2.050   1.400  4
515   2/21/04   3.540   0.671  4
517    3/4/04   2.040   0.815  4
535   8/31/04   4.390   0.236  4
550   3/11/05   1.220   0.902  4
552   3/23/05   1.920   0.233  4
559   5/10/05   5.840   0.189  4
566   9/13/05  19.100   0.149  4
583   2/22/06   3.740   0.657  4
633  10/12/03   5.990   0.428  5
643  12/29/03   2.330   0.554  5
654   5/15/04   2.760   0.520  5
662    7/8/04   1.480   0.186  5
663   7/14/04   3.540   0.576  5
665    8/1/04   1.630   0.372  5
667   8/19/04  12.200   0.223  5
674  10/12/04   3.090   0.466  5
676  10/18/04   3.610   0.372  5
679  10/30/04   7.370   0.590  5
682   11/5/04   2.680   0.219  5
686  11/29/04   1.780   0.739  5
697   4/16/05   2.790   0.421  5
707   7/15/05   1.360   0.250  5
722  11/30/05   0.959   0.312  5
725  12/30/05   2.530   1.010  5
792  10/18/03   4.680   1.040  6
798  11/29/03   1.300   0.491  6
805    2/9/04   3.260   0.506  6
809   3/28/04   2.000   0.340  6
822   9/18/04   4.300   0.203  6
823   9/30/04  15.800   0.472  6
831  12/17/04   1.820   0.941  6
833  12/23/04   2.370   0.570  6
840   3/29/05   2.550   0.215  6
842   4/10/05   2.930   0.286  6
845    6/3/05   2.090   0.290  6
854   8/14/05   5.420   0.209  6
858   9/19/05   6.040   0.188  6
860   9/25/05   2.800   0.342  6
872  12/18/05   2.370   1.100  6
943  11/23/03   3.410   0.964  7
945  12/23/03   2.270   0.715  7
954   3/22/04   2.990   0.486  7
965    8/7/04   5.760   0.193  7
984    2/9/05   1.280   0.378  7
991    5/4/05   4.730   0.285  7
994   5/28/05   6.650   0.276  7
1006 12/12/05   0.613   0.326  7
1012  2/10/06   2.600   1.480  7
1076  1/10/04   7.130   0.518  8
1085  7/20/04   6.630   0.118  8
1088  8/25/04   4.980   0.227  8
1103  1/22/05   4.670   1.770  8
1118  6/27/05   3.220   0.205  8
1119   7/3/05   3.810   0.322  8
1122  7/21/05   1.850   0.177  8
1124   8/2/05   2.570   0.503  8
1126  8/20/05   9.520   0.193  8
1131  10/7/05   1.820   0.267  8
1135 11/24/05   1.670   0.743  8
1136  12/6/05   2.740   1.830  8

No hay comentarios:

Publicar un comentario