【问题标题】:Rejoin sequential record rows in dataframe重新加入数据框中的顺序记录行
【发布时间】:2016-05-10 18:19:58
【问题描述】:

我正在处理一个数据集,其中记录行被分成两部分。

我目前正在处理的数据如下所示:

df <- data.frame(
  row_id = 1:10,
  V1 = c("burger", "01-01-2016", "chicken patty", "01-02-2016", "veggie burger", "01-03-2016", "turkey burger", "01-01-2016", "veggie burger", "01-02-2016"), 
  V2 = c("cheese", "very tasty", "onions", "ok", NA, "tasty", "cheese", "ok", "onions", NA),
  V3 = c("bun", NA, "wrap", NA, "bun", NA, "wrap", NA, NA, NA)
)


    row_id            V1               V2           V3
      1              burger          cheese         bun
      2              01-01-2016      very tasty     NA
      3              chicken patty   onions         wrap    
      4              01-02-2016      ok             NA
      5              veggie burger   NA             bun
      6              01-03-2016      tasty          NA
      7              turkey burger   cheese         wrap
      8              01-01-2016      ok             NA
      9              veggie burger   onions         NA
      10             01-02-2016      NA             NA

但是,我需要将适当的记录行重新组合在一起, 让我的数据看起来像这样:

    row_id            V1               V2           V3          V4            V5
      1              burger          cheese         bun       01-01-2016      very tasty
      2              chicken patty   onions         wrap      01-02-2016      ok
      3              veggie burger   NA             bun       01-03-2016      tasty
      4              turkey burger   cheese         wrap      01-01-2016      ok
      5              veggie burger   onions         NA        01-02-2016      NA

我考虑过在追加前一行的地方做一些事情。但是,我不知道如何编写这样的过程。

我目前正在使用 dplyr 库,因此使用 dplyr 发布的任何回复都会更有帮助。

【问题讨论】:

    标签: r dataframe dplyr transformation data-manipulation


    【解决方案1】:

    我们可以cbind() 偶数行和非偶数行并删除不相关的列:

    cbind(df[c(TRUE, FALSE), -1], df[c(FALSE, TRUE), -c(1, 4)])
                 V1     V2   V3         V1         V2
    1        burger cheese  bun 01-01-2016 very tasty
    3 chicken patty onions wrap 01-02-2016         ok
    5 veggie burger   <NA>  bun 01-03-2016      tasty
    7 turkey burger cheese wrap 01-01-2016         ok
    9 veggie burger onions <NA> 01-02-2016       <NA>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-10-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多