使用if语句过滤最小值/最大值R

西安

以下是我尝试过滤的df部分的示例

Gene                Chr     Start       End         V5  Strand
ENSMUSG00000028364  chr4    64012669    64020725    .   -   
ENSMUSG00000028364  chr4    63959785    64047015    .   -
ENSMUSG00000018387  chr11   53457249    53467501    .   +   
ENSMUSG00000018387  chr11   53457205    53467766    .   +

对于每个基因,我希望在第3列和第4列中保留第一个(或最后一个)值,具体取决于该基因位于哪条链上。我尝试了几种不同的方法,但是都给出了错误并且无法正常工作

df <- df %>%
   group_by(Gene) %>%
   ifelse(df$Strand == "+", (filter(Start==first(Start), End ==first(End))), (filter(End==last(End), Start ==last(Start))))

Error in ifelse(., df$Strand == "+", (filter(Start == first(Start),  : unused argument ((filter(End == last(End), Start == last(Start))))


df <- df %>%
   group_by(Gene) %>%
   {if (df$Strand == "+") filter(Start==first(Start), End ==first(End)) else filter(End==last(End), Start ==last(Start))}

Error in filter(Start == first(Start), End == first(End)) : object 'Start' not found
In addition: Warning message:
In if (df$Strand == "+") filter(Start == first(Start),  :

 Error in filter(Start == first(Start), End == first(End)) : object 'Start' not found 

这是我过滤后想要的,对于每个基因,如果链为+,则使整行的起始和末端坐标保持最小(首先在起始处过滤,然后在末端过滤),如果链为负,则保持开始和结束坐标最大的行(在结束坐标上第一个过滤器,然后是开始)。

Gene                Chr     Start       End         V5  Strand  
ENSMUSG00000028364  chr4    63959785    64047015    .   -
ENSMUSG00000018387  chr11   53457249    53467501    .   +

有什么建议可以进行这项工作吗?谢谢!

乔纳森·索洛扎诺

我认为您正在使用来寻找类似的内容filter

library(tidyverse)
df %>%
  group_by(Gene) %>%
  # Get first row for "+" and last for "-"
  filter(Strand == "+" & row_number() == 1 | Strand == "-" & row_number() == n())

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

R中经过的时间-最小值,最大值

来自分类Dev

使用最小值和最大值的置信带

来自分类Dev

使用awk的最大值和最小值

来自分类Dev

使用Comparable查找最大值/最小值

来自分类Dev

使用Parallel.For搜索最小值/最大值

来自分类Dev

使用awk提取最大值和最小值

来自分类Dev

使用awk查找最小值和最大值?

来自分类Dev

使用Python的字典的最大值和最小值

来自分类Dev

使用 xpath 获取元素的最小值/最大值

来自分类Dev

最小值和最大值

来自分类Dev

数组的最小值/最大值

来自分类Dev

如何在不使用if语句的情况下在数组中找到最大值和最小值?

来自分类Dev

通过最小值和最大值快速过滤Python数组中的元素

来自分类Dev

如何通过属性的最小值和最大值过滤 woocommerce 产品?

来自分类Dev

R:获得向量中每个项目的最小值/最大值,与单个值相比

来自分类Dev

提取每个组中的最小值和最大值,并使用R添加新的文本列

来自分类Dev

ggplot:使用类别值(最小值和最大值)添加geom_rect

来自分类Dev

Excel:使用什么公式返回一组查找值的最小值或最大值?

来自分类Dev

与同时使用最小值和最大值相比,此函数同时检索最小值和最大值的速度快吗?

来自分类Dev

如何使用Highchart自动计算的最小值和最大值,除非它们高于或低于预定义的最小值和最大值

来自分类Dev

在Python中查找列表的最小值,最大值

来自分类Dev

获取Clojure中的最大值和最小值

来自分类Dev

查找函数的最小值和最大值

来自分类Dev

数组中的Java最小值和最大值

来自分类Dev

在列表中交换最大值和最小值

来自分类Dev

如何获得数组的最小值,最大值?

来自分类Dev

列表集合中的最小值和最大值

来自分类Dev

飞镖列表的最小值/最大值

来自分类Dev

在.json中查找最大值和最小值

Related 相关文章

  1. 1

    R中经过的时间-最小值,最大值

  2. 2

    使用最小值和最大值的置信带

  3. 3

    使用awk的最大值和最小值

  4. 4

    使用Comparable查找最大值/最小值

  5. 5

    使用Parallel.For搜索最小值/最大值

  6. 6

    使用awk提取最大值和最小值

  7. 7

    使用awk查找最小值和最大值?

  8. 8

    使用Python的字典的最大值和最小值

  9. 9

    使用 xpath 获取元素的最小值/最大值

  10. 10

    最小值和最大值

  11. 11

    数组的最小值/最大值

  12. 12

    如何在不使用if语句的情况下在数组中找到最大值和最小值?

  13. 13

    通过最小值和最大值快速过滤Python数组中的元素

  14. 14

    如何通过属性的最小值和最大值过滤 woocommerce 产品?

  15. 15

    R:获得向量中每个项目的最小值/最大值,与单个值相比

  16. 16

    提取每个组中的最小值和最大值,并使用R添加新的文本列

  17. 17

    ggplot:使用类别值(最小值和最大值)添加geom_rect

  18. 18

    Excel:使用什么公式返回一组查找值的最小值或最大值?

  19. 19

    与同时使用最小值和最大值相比,此函数同时检索最小值和最大值的速度快吗?

  20. 20

    如何使用Highchart自动计算的最小值和最大值,除非它们高于或低于预定义的最小值和最大值

  21. 21

    在Python中查找列表的最小值,最大值

  22. 22

    获取Clojure中的最大值和最小值

  23. 23

    查找函数的最小值和最大值

  24. 24

    数组中的Java最小值和最大值

  25. 25

    在列表中交换最大值和最小值

  26. 26

    如何获得数组的最小值,最大值?

  27. 27

    列表集合中的最小值和最大值

  28. 28

    飞镖列表的最小值/最大值

  29. 29

    在.json中查找最大值和最小值

热门标签

归档