【问题标题】:Split one table to multiple tables将一张表拆分为多张表
【发布时间】:2019-08-14 10:20:08
【问题描述】:

实际上,我有一个大表,我想根据特定列的值将其拆分为多个表。 为此,我使用这样的子集函数:

lapply(1:18, function(i) subset(table,bucket==i))

问题是我不知道如何将每个迷你表分配给它的名称,例如 table_1 for i=1,table_2 for i=2 ...

【问题讨论】:

  • 看看split。如果您提供table 的样本,会更容易为您提供帮助。
  • 要添加到@patL 的评论,请尝试split(table, table$bucket)

标签: r split datatables dplyr


【解决方案1】:

我做了这个并且它有效:

for (i in unique(table$bucket))
{
  assign(  paste("table_", i, sep = ""), subset(table,bucket==i) )
}

你知道有没有办法避免使用 For 循环?

【讨论】:

    【解决方案2】:

    这个怎么样?

    install.packages(dplyr)
    library(dplyr)
    
    sampler1 <- data.frame(LobsterID=c("Lobster1","Lobster1","Lobster2",
                                       "Lobster2","Lobster2","Lobster2",
                                       "Lobster2","Lobster3","Lobster3","Lobster3"),
                           Area=c(.4,.35,1.1,1.04,1.14,1.1,1.05,1.7,1.63,1.8),
                           Sampler=c(rep("Sampler1", 10)))
    sampler2 <- data.frame(LobsterID=c("Lobster1","Lobster1","Lobster1",
                                       "Lobster1","Lobster1","Lobster2",
                                       "Lobster2","Lobster2","Lobster4","Lobster4"),
                           Area=c(.41,.44,.47,.43,.38,1.14,1.11,1.09,1.41,1.4),
                           Sampler=c(rep("Sampler2", 10)))
    
    combined <- bind_rows(sampler1, sampler2)
    
    combined
    
    splitout <- split(combined, combined$LobsterID)
    splitout
    

    结果:

    $Lobster1
       LobsterID Area  Sampler
    1   Lobster1 0.40 Sampler1
    2   Lobster1 0.35 Sampler1
    11  Lobster1 0.41 Sampler2
    12  Lobster1 0.44 Sampler2
    13  Lobster1 0.47 Sampler2
    14  Lobster1 0.43 Sampler2
    15  Lobster1 0.38 Sampler2
    
    $Lobster2
       LobsterID Area  Sampler
    3   Lobster2 1.10 Sampler1
    4   Lobster2 1.04 Sampler1
    5   Lobster2 1.14 Sampler1
    6   Lobster2 1.10 Sampler1
    7   Lobster2 1.05 Sampler1
    16  Lobster2 1.14 Sampler2
    17  Lobster2 1.11 Sampler2
    18  Lobster2 1.09 Sampler2
    
    $Lobster3
       LobsterID Area  Sampler
    8   Lobster3 1.70 Sampler1
    9   Lobster3 1.63 Sampler1
    10  Lobster3 1.80 Sampler1
    
    $Lobster4
       LobsterID Area  Sampler
    19  Lobster4 1.41 Sampler2
    20  Lobster4 1.40 Sampler2
    

    【讨论】:

      猜你喜欢
      • 2016-09-26
      • 2013-05-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-15
      • 1970-01-01
      • 1970-01-01
      • 2019-11-15
      相关资源
      最近更新 更多