代码之家  ›  专栏  ›  技术社区  ›  12666727b9

如何从共享同一列的数据集中转移列

  •  0
  • 12666727b9  · 技术社区  · 4 年前

    我有两个版本的数据集共享相同的列(或多或少)。让我们举个例子

    db = airquality
    db1 = airquality[,-c(6)]
    db1$Ozone[db1$Ozone < 30] <- 24
    db1$Month[db1$Month == 5] <- 24
    
    db
    db1
    

    如果我想通过使用管道运算符%>%编写代码将两列“臭氧”和“风”从数据集“db1”转移到“db”数据集或者另一种迭代方法来实现这个结果,您可能会建议使用哪种代码?

    谢谢

    2 回复  |  直到 4 年前
        1
  •  2
  •   Allan Cameron    4 年前

    您可以:

    library(dplyr)
    
    db1 %>% 
      select(Ozone, Wind) %>% 
      bind_cols(db)
    

    注意在该示例中由于某些列名将在最终结果中重复, dplyr 将通过在列名末尾附加数字来自动重命名重复项。

        2
  •  2
  •   TarJae    4 年前

    基准R:

    cbind(db, db1[,c(1,3)])
    
       Ozone Solar.R Wind Temp Month Day Ozone Wind
    1      41     190  7.4   67     5   1    41  7.4
    2      36     118  8.0   72     5   2    36  8.0
    3      12     149 12.6   74     5   3    24 12.6
    4      18     313 11.5   62     5   4    24 11.5
    5      NA      NA 14.3   56     5   5    NA 14.3
    6      28      NA 14.9   66     5   6    24 14.9
    7      23     299  8.6   65     5   7    24  8.6
    8      19      99 13.8   59     5   8    24 13.8
    9       8      19 20.1   61     5   9    24 20.1
    10     NA     194  8.6   69     5  10    NA  8.6
    11      7      NA  6.9   74     5  11    24  6.9
    12     16     256  9.7   69     5  12    24  9.7
    .
    .
    .
    
    推荐文章