首页 > 解决方案 > 如何将一些行放在一起?

问题描述

我有一列是 NA 或行的索引。我想创建一个新数据集并将这些行彼此相邻。

例子

            data      rowindex
            1         NA
            2         NA
            3         1,2
            4         5
            5         NA

在第 3 行中,rowindex 列是 1 和 2,所以我将把第一行和第三行彼此相邻,第二行和第三行。rowindex 的第四列也是 5,所以我将把第五行放在一起。

输出

          data      rowindex      data.1      rowindex.1
            1         NA             3              1
            2         NA             3              1
            5         NA             4              5

我忽略了写下其他专栏。如果我们有 2 个索引,那么我们在输出中有 2 个不同的行。

标签: rdataframe

解决方案


这看起来很奇怪,但你去:

ind = !is.na(dd$rowindex)
cbind(dd[dd$rowindex[ind], ],
      dd[ind, ])
#   data rowindex data rowindex
# 1    1       NA    3        1
# 5    5       NA    4        5

使用这些数据:

dd = read.table(text = 'data      rowindex
            1         NA
            2         NA
            3         1
            4         5
            5         NA', header= T)

推荐阅读