使用条件将列表中的数据框处理为子集行,使用R处理另一个数据框

库玛

我有一个包含多个数据框(即“ mylist”)和一个数据框(即“ mydf”)的列表。有了这两个,我需要解决两个要使用R解决的问题

实际列表包含许多数据框,而实际数据框包含10000行。这里仅显示示例数据

第一个问题:我有一个包含多个数据框的列表。以下列表是一个示例

mylist1 <- list(a = data.frame(ID = c("a_1", "b_1", "c_1", "d_1", "e_1", "f_1"), colb = c(3.67, 4.94, 8.11, 2.85, 9.53, 7.5), colc = c(3.45, 6.19, 4.96, 6.73, 9.26, 8.62)), 
       b = data.frame(cola = c("a_1", "b_1", "c_1", "d_1", "e_1", "f_1"), colb = c(5.24, 3.62, 0.29, 6.65, 7.86, 8.7), colc = c(7.03, 7.51, 0.842, 3.56, 8.68, 5.844)))

我想根据条件'colc'中的值对列表的每个数据帧中的行进行子集处理,如果列'colc'中的值> = 6,我希望对每个数据帧中的行进行子集化列表中的

mylist1的预期输出1如下...

mylistoutput <- list(a = data.frame(ID = c("b_1", "d_1", "e_1", "f_1"), colb = c(4.94, 2.85, 9.53, 7.5), colc = c(6.19, 6.73, 9.26, 8.62)), 
       b = data.frame(cola = c("a_1", "b_1", "e_1"), colb = c(5.24, 3.62, 7.86), colc = c(7.03, 7.51, 8.68)))

我尝试使用带有过滤器/子集的条件对行进行子集化,如下所示

mylistoutput <- lapply(mylist, function(x) filter(x$colc >= 6))

但是失败了...

第二个问题:从“ mylistoutput”,我想做两件事

首先,对于第一个数据框“ mylistoutput”,我想将“ mylistoutput”中“ ID”列的ID与“ mydf”数据框中的ID匹配

数据框“ mydf”示例如下

mydf <- data.frame(ID = c("a_1","a_1","a_1","a_1","a_1", "b_1","b_1","b_1","b_1", "c_1","c_1","c_1", "d_1","d_1","d_1", "e_1","e_1","e_1","e_1","e_1", "f_1","f_1","f_1","g_1","g_1","g_1","g_1","g_1"), colb = c(3.67,1,2.3,2.5,5, 1.1,2.2,3.7,4.94, 8.11,1.23,2, 2.85,1,2, 5,4,9.53,4,5, 8,7,7.5, 1,2,3,4,5), colc = c(3.45,1,2,3,4, 6.19,1,2,3, 4.96,1,2, 6.73,1,2, 9.26,1,2,3,4, 8.62,1,2, 1,2,3,4,5))

现在,我想提取“ mylistoutput”和“ mydf”中第一个数据帧之间的所有匹配ID

“ mydf”的预期输出如下

 mydfoutput1 <- data.frame(ID = c("b_1","b_1","b_1","b_1", "d_1","d_1","d_1", "e_1","e_1","e_1","e_1","e_1", "f_1","f_1","f_1"), colb = c(1.1,2.2,3.7,4.94, 2.85,1,2, 5,4,9.53,4,5, 8,7,7.5), colc = c(6.19,1,2,3, 6.73,1,2, 9.26,1,2,3,4, 8.62,1,2))

其次,我想在“ mylistoutput”列表的各个数据帧中选择匹配的ID。例如,“ b_1”和“ e_1”是列表“ mylistoutput”的两个数据框中的公共ID。然后,我想从数据框“ mydf”中子集相同的ID,即“ b_1”和“ e_1”

预期输出如下

mydfoutput2 <- data.frame(ID = c("b_1","b_1","b_1","b_1", "e_1","e_1","e_1","e_1","e_1"), colb = c(1.1,2.2,3.7,4.94, 5,4,9.53,4,5), colc = c(6.19,1,2,3, 9.26,1,2,3,4, ))

寻找代码来解决上述问题

阿克伦

我们可以使用lapplysubset

out <- lapply(mylist1, subset, subset = colc >=6)

对于第二种情况,我们可以

subset(mydf, ID %in% out[[1]]$ID)

对于第三种情况,请Reduceintersect

subset(mydf, ID %in% Reduce(intersect, lapply(out, `[[`, 1)))

filter来自dplyr,它需要一个data.frame作为输入,而不是一个向量

lapply(mylist, function(x) filter(x, colc >= 6))

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

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

来自分类Dev

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

来自分类Dev

如何对以另一个数据框的日期时间为条件的数据框的特定行进行子集化

来自分类Dev

将功能列表应用于R中另一个数据框中的行

来自分类Dev

使用条件将数据从一个数据框填充到另一个数据框,然后重复填充直到条件更改

来自分类Dev

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

来自分类Dev

使用条件从另一个数据框中更新值来更新pandas数据框列

来自分类Dev

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

来自分类Dev

使用与另一个数据框的匹配来重命名数据框列表中的列

来自分类Dev

使用另一个数据框的行中的多值在pandas数据框中查找值

来自分类Dev

使用另一个数据框缩放数据框中的变量

来自分类Dev

使用另一个数据框作为R中的键替换数据框中的所有值

来自分类Dev

使用另一个数据框作为R中的键替换数据框中的所有值

来自分类Dev

使用来自另一个数据框的索引替换数据框中的行

来自分类Dev

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

来自分类Dev

使用R中另一个数据处理大型DataTable

来自分类Dev

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

来自分类Dev

R:使用来自另一个数据框的映射在一个数据框中创建一个新列

来自分类Dev

使用R数据框中的值对另一个数据框的列进行规范化

来自分类Dev

R使用一个数据框中的条件从列表中选择元素

来自分类Dev

如何在R bu中对数据框进行子集提取,以及如何基于类似的列将一个数据框的列添加到另一个数据框

来自分类Dev

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

来自分类Dev

根据另一个数据框中的行创建多个新数据框,并在r中使用for循环

来自分类Dev

将数据框列表中的每个数据框附加到另一个数据框列表中

来自分类Dev

使用另一个在一个数据框中搜索值

来自分类Dev

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

来自分类Dev

使用一个数据框中的最后一个有效数据索引选择另一个数据框中的数据

来自分类Dev

将整个列表与另一个数据框中的值匹配

来自分类Dev

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

Related 相关文章

  1. 1

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

  2. 2

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

  3. 3

    如何对以另一个数据框的日期时间为条件的数据框的特定行进行子集化

  4. 4

    将功能列表应用于R中另一个数据框中的行

  5. 5

    使用条件将数据从一个数据框填充到另一个数据框,然后重复填充直到条件更改

  6. 6

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

  7. 7

    使用条件从另一个数据框中更新值来更新pandas数据框列

  8. 8

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

  9. 9

    使用与另一个数据框的匹配来重命名数据框列表中的列

  10. 10

    使用另一个数据框的行中的多值在pandas数据框中查找值

  11. 11

    使用另一个数据框缩放数据框中的变量

  12. 12

    使用另一个数据框作为R中的键替换数据框中的所有值

  13. 13

    使用另一个数据框作为R中的键替换数据框中的所有值

  14. 14

    使用来自另一个数据框的索引替换数据框中的行

  15. 15

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

  16. 16

    使用R中另一个数据处理大型DataTable

  17. 17

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

  18. 18

    R:使用来自另一个数据框的映射在一个数据框中创建一个新列

  19. 19

    使用R数据框中的值对另一个数据框的列进行规范化

  20. 20

    R使用一个数据框中的条件从列表中选择元素

  21. 21

    如何在R bu中对数据框进行子集提取,以及如何基于类似的列将一个数据框的列添加到另一个数据框

  22. 22

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

  23. 23

    根据另一个数据框中的行创建多个新数据框,并在r中使用for循环

  24. 24

    将数据框列表中的每个数据框附加到另一个数据框列表中

  25. 25

    使用另一个在一个数据框中搜索值

  26. 26

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

  27. 27

    使用一个数据框中的最后一个有效数据索引选择另一个数据框中的数据

  28. 28

    将整个列表与另一个数据框中的值匹配

  29. 29

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

热门标签

归档