过滤数据框 [英] Filtering a data.frame

查看:91
本文介绍了过滤数据框的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我们假设我有数据框,如

  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臀部
8 7.133673臀部
9 7.574058臀部
10 7.208041臀部
11 7.402100臀部
12 7.167792臀部
13 7.156971臀部
14 7.197543臀部
15 7.035404臀部
16 7.269474臀部
17 6.715059臀部
18 7.434339臀部
19 6.997586臀部
20 7.619770臀部
21 7.490749臀部
pre>

我想要的是获取一个看起来相同但只有一个cell_type的数据的新数据帧。例如

  expr_value cell_type 
1 5.929771 hesc
2 5.873096 hesc
3 5.665857 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

有没有办法做到这一点?



我已经尝试过的是像

 > expr [expr [2] =='hesc'] 
[1]5.9297715.8730965.665857hescheschesc
>

如果原始数据框被称为expr,但它给出的结果格式错误,如您所见。

解决方案

  expr [expr $ cell_type ==hesc,] 

expr [%c(hesc,bj fibroblast)中的expr $ cell_type%]


let's suppose that I have data frame like

   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

What I want to is to get a new data frame which looks the same but only has the data for one cell_type. E.g.

   expr_value     cell_type
1    5.929771          hesc
2    5.873096          hesc
3    5.665857          hesc

or for two classes like

   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

Is there any easy way to do this?

What I've tried already is something like

> expr[expr[2] == 'hesc']
[1] "5.929771" "5.873096" "5.665857" "hesc"     "hesc"     "hesc"    
>

if the original data frame is called expr but it gives the results in wrong format as you can see.

解决方案

expr[expr$cell_type == "hesc", ]

expr[expr$cell_type %in% c("hesc", "bj fibroblast"), ]

这篇关于过滤数据框的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆