Quiero filtrar filas de un data.frame
según una condición lógica. Supongamos que tengo trama de datos comoFiltrar filas data.frame por una condición lógica
expr_value cell_type
1 5.345618 bj fibroblast
2 5.195871 bj fibroblast
3 5.247274 bj fibroblast
4 5.929771 hesc
5 5.873096 hesc
6 5.665857 hesc
7 6.791656 hips
8 7.133673 hips
9 7.574058 hips
10 7.208041 hips
11 7.402100 hips
12 7.167792 hips
13 7.156971 hips
14 7.197543 hips
15 7.035404 hips
16 7.269474 hips
17 6.715059 hips
18 7.434339 hips
19 6.997586 hips
20 7.619770 hips
21 7.490749 hips
Lo que quiero es conseguir una nueva trama de datos, que tiene el mismo aspecto, pero sólo tiene los datos para un cell_type. P.ej. subconjunto/selectas filas que contiene el tipo de célula "HESC":
expr_value cell_type
1 5.929771 hesc
2 5.873096 hesc
3 5.665857 hesc
O cualquiera de los tipos de células "de fibroblastos BJ" o "HESC":
expr_value cell_type
1 5.345618 bj fibroblast
2 5.195871 bj fibroblast
3 5.247274 bj fibroblast
4 5.929771 hesc
5 5.873096 hesc
6 5.665857 hesc
¿Hay alguna forma fácil de hacer esto?
He intentado:
expr[expr[2] == 'hesc']
# [1] "5.929771" "5.873096" "5.665857" "hesc" "hesc" "hesc"
si la trama de datos original se llama "expr", pero da los resultados en un formato incorrecto como se puede ver.
Tenga en cuenta que el '' == función será recoger cualquier NA registra, así como "HESC" , mientras que '% en%' no. –
@Matt cuando se usa 'subconjunto' esto funciona como se esperaba. –