R根据多个条件获取行-使用dplyr和reshape2

用户名
df <- data.frame(
    exp=c(1,1,2,2),
  name=c("gene1", "gene2", "gene1", "gene2"),
    value=c(1,1,3,-1)
    )

在尝试定制时dplyrreshape2我偶然发现了一种“简单”的方法来根据几种条件选择行。如果我想让那些在实验1(== 1)中大于0并同时在实验2中小于0的基因(name变量)在df中,这将是“ gene2”。当然,必须有很多方法,例如,每组条件的子集df(exp == 1且值> 0,exp == 2且值<0),然后将这些子集的结果合并:valueexpvalue

library(dplyr)    
inner_join(filter(df,exp == 1 & value > 0),filter(df,exp == 2 & value < 0), by= c("name"="name"))[[1]]

虽然这个作品看起来非常akward的,我觉得这样的空调过滤在谎言的心脏reshape2dplyr,但无法弄清楚如何做到这一点。有人可以在这里启发我吗?

A5C1D2H2I1M1N2O1R2T1

想到的一种替代方法是将数据转换为“宽”格式,然后进行过滤。

这是一个使用“ data.table”的示例(为便于复合语句使用):

library(data.table)
dcast.data.table(as.data.table(df), name ~ exp)[`1` > 0 & `2` < 0]
#     name 1  2
# 1: gene2 1 -1

同样,对于“ dplyr”和“ tidyr”:

library(dplyr)
library(tidyr)
df %>% 
  spread(exp, value) %>% 
  filter(`1` > 0 & `2` < 0)

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在R中处理数据帧:可能使用dplyr和reshape2

来自分类Dev

使用dplyr或reshape2在数据框的多个列上进行卡方统计

来自分类Dev

R-使用reshape2或dplyr对同一单元中具有多个元素的数据框进行整形

来自分类Dev

在R中:使用tidyr和reshape2拆分一列以获得多行

来自分类Dev

在R中使用reshape2重塑数据

来自分类Dev

R:将tidyverse转换为dplyr / reshape2以进行绘图

来自分类Dev

reshape2:聚合函数的多个结果?

来自分类Dev

R reshape2 dcast:转换数据

来自分类Dev

R使用Reshape2进行重塑(统计数据包功能)设计用于

来自分类Dev

R:使用带有重量的reshape2 :: acast进行聚合

来自分类Dev

R使用Reshape2进行重塑(stats包函数)设计用于

来自分类Dev

R:使用reshape2将数据帧重塑为长数据格式

来自分类Dev

R添加/填充缺少的组合dcast reshape2表

来自分类Dev

R reshape2'缺少聚合函数:默认为长度'

来自分类Dev

根据R中的多个条件(时差和因子)按组折叠行

来自分类Dev

使用dplyr根据R中不同事件之间的条件和日期差异删除行

来自分类Dev

使用 reshape2::melt 和 reshape2::dcast 在用户定义函数中调用变量

来自分类Dev

R - 在唯一行上投射数据框 - reshape2

来自分类Dev

熊猫:使用〜mask根据多个条件从数据中过滤行

来自分类Dev

熊猫:使用〜mask根据多个条件从数据中过滤行

来自分类Dev

根据R中的多个条件(dplyr,lubridate)创建开始和结束时间列

来自分类Dev

使用Reshape2清理HTML表

来自分类Dev

为什么reshape2的Melt无法捕获转换中的行名?

来自分类Dev

根据r中的条件使用Map函数获取NA列表

来自分类Dev

无法在Ubuntu 12.04.4上为R 2.15.3安装软件包reshape2

来自分类Dev

R根据行顺序和条件创建组变量

来自分类Dev

根据行号和条件选择data.table R行

来自分类Dev

根据 r 中的某些条件使用 dplyr 添加特定的新行

来自分类Dev

模拟reshape2 :: melt和pivot_longer矩阵

Related 相关文章

  1. 1

    在R中处理数据帧:可能使用dplyr和reshape2

  2. 2

    使用dplyr或reshape2在数据框的多个列上进行卡方统计

  3. 3

    R-使用reshape2或dplyr对同一单元中具有多个元素的数据框进行整形

  4. 4

    在R中:使用tidyr和reshape2拆分一列以获得多行

  5. 5

    在R中使用reshape2重塑数据

  6. 6

    R:将tidyverse转换为dplyr / reshape2以进行绘图

  7. 7

    reshape2:聚合函数的多个结果?

  8. 8

    R reshape2 dcast:转换数据

  9. 9

    R使用Reshape2进行重塑(统计数据包功能)设计用于

  10. 10

    R:使用带有重量的reshape2 :: acast进行聚合

  11. 11

    R使用Reshape2进行重塑(stats包函数)设计用于

  12. 12

    R:使用reshape2将数据帧重塑为长数据格式

  13. 13

    R添加/填充缺少的组合dcast reshape2表

  14. 14

    R reshape2'缺少聚合函数:默认为长度'

  15. 15

    根据R中的多个条件(时差和因子)按组折叠行

  16. 16

    使用dplyr根据R中不同事件之间的条件和日期差异删除行

  17. 17

    使用 reshape2::melt 和 reshape2::dcast 在用户定义函数中调用变量

  18. 18

    R - 在唯一行上投射数据框 - reshape2

  19. 19

    熊猫:使用〜mask根据多个条件从数据中过滤行

  20. 20

    熊猫:使用〜mask根据多个条件从数据中过滤行

  21. 21

    根据R中的多个条件(dplyr,lubridate)创建开始和结束时间列

  22. 22

    使用Reshape2清理HTML表

  23. 23

    为什么reshape2的Melt无法捕获转换中的行名?

  24. 24

    根据r中的条件使用Map函数获取NA列表

  25. 25

    无法在Ubuntu 12.04.4上为R 2.15.3安装软件包reshape2

  26. 26

    R根据行顺序和条件创建组变量

  27. 27

    根据行号和条件选择data.table R行

  28. 28

    根据 r 中的某些条件使用 dplyr 添加特定的新行

  29. 29

    模拟reshape2 :: melt和pivot_longer矩阵

热门标签

归档