R - 将 bind_rows 用于子集对象列表

洛德

我有以下结构的数十个对象的列表。我想删除每个文件的前三行,只保留前三列。

    x<-structure(c("", "Service", "", "HR", "", "", "Function", "", "Code", 
                "X1", "", "", "", "", "", "Doe, John", "Roe, Jane", 
                "Doe, Jane", "", "Full name", "", "", "", ""), .Dim = c(6L, 4L))

    y<-structure(c("", "Service", "", "IT", "", "", "Function", "", "Code", 
                "X2", "", "", "", "", "", "Doe, Johnny", "Roe, Janette", 
                "Doe, Janette", "", "Full name", "", "", "", ""), .Dim = c(6L, 4L))

    z<-structure(c("", "Service", "", "RD", "", "", "Function", "", "Code", 
                "X3", "", "", "", "", "", "Doe, Johnny", "Roe, Janette", 
                "Roe, Johnny", "", "Full name", "", "", "", ""), .Dim = c(6L, 4L))

l<-list(x,y,z)

我如何概括下面为列表中的所有对象编写的内容length(l)

length(l)

x<-bind_rows(
tbl_df(l[[1]][-c(1,2,3),c(1,2,3)]),
tbl_df(l[[2]][-c(1,2,3),c(1,2,3)]),
tbl_df(l[[3]][-c(1,2,3),c(1,2,3)])
)
西多姆

bind_rows可以接受数据框列表;因此,您可以遍历列表,对矩阵进行子集化并将它们转换为数据框,然后bind_rows应该处理结果列表:

library(dplyr)
bind_rows(lapply(l, function(mat) tbl_df(mat[-(1:3), 1:3])))

# A tibble: 9 x 3
#     V1    V2           V3
#  <chr> <chr>        <chr>
#1    HR    X1    Doe, John
#2                Roe, Jane
#3                Doe, Jane
#4    IT    X2  Doe, Johnny
#5             Roe, Janette
#6             Doe, Janette
#7    RD    X3  Doe, Johnny
#8             Roe, Janette
#9              Roe, Johnny

另一种选择是使用do.call(rbind, ...)which 产生一个矩阵(如果你不关心是一个矩阵或数据框):

do.call(rbind, lapply(l, `[`, -(1:3), 1:3))

#      [,1] [,2] [,3]          
# [1,] "HR" "X1" "Doe, John"   
# [2,] ""   ""   "Roe, Jane"   
# [3,] ""   ""   "Doe, Jane"   
# [4,] "IT" "X2" "Doe, Johnny" 
# [5,] ""   ""   "Roe, Janette"
# [6,] ""   ""   "Doe, Janette"
# [7,] "RD" "X3" "Doe, Johnny" 
# [8,] ""   ""   "Roe, Janette"
# [9,] ""   ""   "Roe, Johnny"

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

根据名称有条件地将rbind或bind_rows应用于列表

来自分类Dev

使用bind_rows将向量列表转换为数据帧

来自分类Dev

使用bind_rows / data.frame时将列表元素的名称设置为列

来自分类Dev

r 函数调用,带有 2 个参数列表和现有的 bind_rows

来自分类Dev

使用bind_rows将命名向量转换为df

来自分类Dev

如何在表列表中使用 bind_rows?

来自分类Dev

如何使用bind_rows()合并数据集,同时将数据集的名称保留为变量

来自分类Dev

R data.table根据列表中的参数将函数应用于列子集

来自分类Dev

在R中,从菜单中选择数据帧并使用bind_rows

来自分类Dev

为什么rbind()和bind_rows()不能在组合这些SF对象时起作用?

来自分类Dev

R中是否有一个既可以bind_rows()又可以bind_cols()的函数?

来自分类Dev

错误:将读取器格式0.1.1更新为0.2.0后使用dplyr :: bind_rows时,数据帧损坏

来自分类Dev

错误:将读取器格式0.1.1更新为0.2.0后使用dplyr :: bind_rows时,数据帧损坏

来自分类Dev

R将函数应用于数据帧的子集

来自分类Dev

将函数应用于数据框r的子集

来自分类Dev

R:根据列值将函数应用于子集

来自分类Dev

如何将数学函数应用于 R 中的对象列表?

来自分类Dev

将数据帧拆分为 R 中的列子集列表

来自分类Dev

将功能应用于列表R

来自分类Dev

将rbindlists用于R中的嵌套列表

来自分类Dev

将子集功能应用于数据框列表

来自分类Dev

(s)将子集(即`[`)应用于各种列表结构

来自分类Dev

如何在R中使用“字符”对象调用列表子集?

来自分类Dev

将函数应用于R中的列表矩阵

来自分类Dev

将公式列表应用于R data.table

来自分类Dev

将函数应用于R中的数据帧列表

来自分类Dev

R使用“ [[”将函数应用于嵌套列表元素

来自分类Dev

将功能应用于R列表中的特定列

来自分类Dev

R –将功能应用于列表中的特定列

Related 相关文章

  1. 1

    根据名称有条件地将rbind或bind_rows应用于列表

  2. 2

    使用bind_rows将向量列表转换为数据帧

  3. 3

    使用bind_rows / data.frame时将列表元素的名称设置为列

  4. 4

    r 函数调用,带有 2 个参数列表和现有的 bind_rows

  5. 5

    使用bind_rows将命名向量转换为df

  6. 6

    如何在表列表中使用 bind_rows?

  7. 7

    如何使用bind_rows()合并数据集,同时将数据集的名称保留为变量

  8. 8

    R data.table根据列表中的参数将函数应用于列子集

  9. 9

    在R中,从菜单中选择数据帧并使用bind_rows

  10. 10

    为什么rbind()和bind_rows()不能在组合这些SF对象时起作用?

  11. 11

    R中是否有一个既可以bind_rows()又可以bind_cols()的函数?

  12. 12

    错误:将读取器格式0.1.1更新为0.2.0后使用dplyr :: bind_rows时,数据帧损坏

  13. 13

    错误:将读取器格式0.1.1更新为0.2.0后使用dplyr :: bind_rows时,数据帧损坏

  14. 14

    R将函数应用于数据帧的子集

  15. 15

    将函数应用于数据框r的子集

  16. 16

    R:根据列值将函数应用于子集

  17. 17

    如何将数学函数应用于 R 中的对象列表?

  18. 18

    将数据帧拆分为 R 中的列子集列表

  19. 19

    将功能应用于列表R

  20. 20

    将rbindlists用于R中的嵌套列表

  21. 21

    将子集功能应用于数据框列表

  22. 22

    (s)将子集(即`[`)应用于各种列表结构

  23. 23

    如何在R中使用“字符”对象调用列表子集?

  24. 24

    将函数应用于R中的列表矩阵

  25. 25

    将公式列表应用于R data.table

  26. 26

    将函数应用于R中的数据帧列表

  27. 27

    R使用“ [[”将函数应用于嵌套列表元素

  28. 28

    将功能应用于R列表中的特定列

  29. 29

    R –将功能应用于列表中的特定列

热门标签

归档