Je souhaite filtrer les lignes d'un data.frame
en fonction d'une condition logique. Supposons que je trame de données commeFiltrer les lignes de données.en fonction d'une condition logique
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
Ce que je veux est d'obtenir une nouvelle trame de données qui semble la même, mais ne dispose que des données pour une cell_type. Par exemple. sous-ensemble/sélectionner des lignes qui contient le type de cellule « CSEh »:
expr_value cell_type
1 5.929771 hesc
2 5.873096 hesc
3 5.665857 hesc
Ou les deux types de cellules « fibroblaste bj » ou « CSEh »:
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
est-il un moyen facile de faire cela?
J'ai essayé:
expr[expr[2] == 'hesc']
# [1] "5.929771" "5.873096" "5.665857" "hesc" "hesc" "hesc"
si la trame de données d'origine est appelé « expr », mais il donne les résultats au mauvais format que vous pouvez voir.
Sachez que la fonction '==' prendra tous les NA enregistre ainsi que « CSEh » , alors que "% in%" ne le sera pas. –
@Matt lors de l'utilisation de 'subset' cela fonctionne comme prévu. –