根据R中另一个数据框的条件对data.frame中的列求和

chang02_23

我有两个数据框,ab

对于每一行b,我要找到所有start,enda那些内start,endb,再总结的差异start,end的这一特定子集a,并将其存储在一个新列b我正在使用for循环,但是apply在R中有更有效的方法吗?

# data.frame a  
a <- data.frame(chrom=1L, start=as.integer(c(2,4,7,11)), end=as.integer(c(3,6,9,15)))
# chrom start end  
#     1     2   3  
#     1     4   6  
#     1     7   9        
#     1    11  15  

# data.frame b  
b <- data.frame(chr=1L, start=as.integer(c(2,11)), end=as.integer(c(10,20)))
# chrom start end  
#     1     2  10  
#     1    11  20  

# code
result=c()
for (i in 1:dim(b)[1]) { 
    # find start,end in A that are within    
    a_subset = a[which(a$chrom == b[i, ]$chrom & 
                 a$start >= b[i, ]$start & 
                 a$end <= b[i, ]$end), ]

    result = append(result, sum(a_subset$end - a_subset$start))  
}
c = cbind(b, result)

# data.frame c
# chrom start end result
#     1     2  10      5
#     1    11  20      4
尼尔·福尔茨

使用sqldf轻松,使用R烦人:

R>require(sqldf)
R>b$id <- 1:nrow(b)
R>sqldf("select id, b.chr, sum(a.end - a.start) as diff 
    from a, b where a.start >= b.start and b.end >= a.end group by id")
  id chr diff
1  1   1    5
2  2   1    4

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

根据R中另一个数据框的条件对data.frame中的列求和

来自分类Dev

根据条件从另一个数据框中复制列值

来自分类Dev

根据另一个数据框中的匹配条件将列添加到R中的数据框中

来自分类Dev

R-根据另一个数据框的列中的值满足的条件,在数据框列中添加值(由公式得出)

来自分类Dev

根据R中另一个数据框的索引创建一个新的数据框

来自分类Dev

R根据另一个数据框中的匹配名称替换同名

来自分类Dev

如何根据R中的另一个数据框条目替换空白?

来自分类Dev

根据条件为另一个数据框的数据框列设置值

来自分类Dev

根据条件,将数据框的某些值替换为另一个数据框中的值

来自分类Dev

根据另一个数据框从数据框中设置子集/选择列

来自分类Dev

根据另一个数据框计算数据框中的列值

来自分类Dev

根据python中另一个数据框的2列过滤数据框

来自分类Dev

根据 R 中另一个数据框中的行选择数据框中的行

来自分类Dev

根据R中另一数据框中的条件值来匹配/子集一个数据框

来自分类Dev

根据R中另一个数据框中的元数据信息合并Dataframe列

来自分类Dev

根据另一个数据框中的日期过滤数据框中的值

来自分类Dev

根据另一个数据集中的列值在一个数据框中创建列

来自分类Dev

根据R中另一个数据框中的比较值更改一个数据框中的值

来自分类Dev

根据另一个数据框中的值对一个数据框进行子集

来自分类Dev

根据另一个数据框/列表在数据框中的列子集

来自分类Dev

根据Python中的另一个数据框更新数据框

来自分类Dev

根据另一个数据框中的信息对数据框进行分类

来自分类Dev

根据给熊猫中另一个数据框中的列赋予的条件对数据框中的列执行操作

来自分类Dev

根据条件从另一个数据框列获取值

来自分类Dev

使用条件使用 R 中的另一个数据框替换数据框的值

来自分类Dev

从R中的另一个数据框创建多个数据框

来自分类Dev

根据条件从 R 中的另一个数据集中添加一个数据集中的列值 - 不同的长度

来自分类Dev

根据另一个数据框重命名多列中的记录

来自分类Dev

根据另一个数据框中的列删除行

Related 相关文章

  1. 1

    根据R中另一个数据框的条件对data.frame中的列求和

  2. 2

    根据条件从另一个数据框中复制列值

  3. 3

    根据另一个数据框中的匹配条件将列添加到R中的数据框中

  4. 4

    R-根据另一个数据框的列中的值满足的条件,在数据框列中添加值(由公式得出)

  5. 5

    根据R中另一个数据框的索引创建一个新的数据框

  6. 6

    R根据另一个数据框中的匹配名称替换同名

  7. 7

    如何根据R中的另一个数据框条目替换空白?

  8. 8

    根据条件为另一个数据框的数据框列设置值

  9. 9

    根据条件,将数据框的某些值替换为另一个数据框中的值

  10. 10

    根据另一个数据框从数据框中设置子集/选择列

  11. 11

    根据另一个数据框计算数据框中的列值

  12. 12

    根据python中另一个数据框的2列过滤数据框

  13. 13

    根据 R 中另一个数据框中的行选择数据框中的行

  14. 14

    根据R中另一数据框中的条件值来匹配/子集一个数据框

  15. 15

    根据R中另一个数据框中的元数据信息合并Dataframe列

  16. 16

    根据另一个数据框中的日期过滤数据框中的值

  17. 17

    根据另一个数据集中的列值在一个数据框中创建列

  18. 18

    根据R中另一个数据框中的比较值更改一个数据框中的值

  19. 19

    根据另一个数据框中的值对一个数据框进行子集

  20. 20

    根据另一个数据框/列表在数据框中的列子集

  21. 21

    根据Python中的另一个数据框更新数据框

  22. 22

    根据另一个数据框中的信息对数据框进行分类

  23. 23

    根据给熊猫中另一个数据框中的列赋予的条件对数据框中的列执行操作

  24. 24

    根据条件从另一个数据框列获取值

  25. 25

    使用条件使用 R 中的另一个数据框替换数据框的值

  26. 26

    从R中的另一个数据框创建多个数据框

  27. 27

    根据条件从 R 中的另一个数据集中添加一个数据集中的列值 - 不同的长度

  28. 28

    根据另一个数据框重命名多列中的记录

  29. 29

    根据另一个数据框中的列删除行

热门标签

归档