【问题标题】:Add list to column in data frame in R, while also adding NA to the other columns将列表添加到 R 数据框中的列,同时将 NA 添加到其他列
【发布时间】:2021-08-12 08:28:07
【问题描述】:

我有一个这样的数据框:

>head(NameFrame)
   name  married  age
1  James Yes      34
2  Sarah No       22
3  John  Yes      55 

我有一个这样的列表:

>head(NameList)
[1] "Kyle", "Bob"

如何将此列表添加到数据框中,以便数据框如下所示:

   name  married  age
1  James Yes      34
2  Sarah No       22
3  John  Yes      55 
4  Kyle  NA       NA
5  Bob   NA       NA

任何帮助将不胜感激!

【问题讨论】:

    标签: r list dataframe append


    【解决方案1】:

    还有data.table rbindlist -

    data.table::rbindlist(list(NameFrame, data.frame(name = NameList)), fill = TRUE)
    
    #    name married age
    #1: James     Yes  34
    #2: Sarah      No  22
    #3:  John     Yes  55
    #4:  Kyle    <NA>  NA
    #5:   Bob    <NA>  NA
    

    【讨论】:

      【解决方案2】:

      我们可以这样做

      NameFrame[nrow(NameFrame) + seq_along(NameList), "name"] <- NameList
      

      给了

      > NameFrame
         name married age
      1 James     Yes  34
      2 Sarah      No  22
      3  John     Yes  55
      4  Kyle    <NA>  NA
      5   Bob    <NA>  NA
      

      数据

      > dput(NameFrame)
      structure(list(name = c("James", "Sarah", "John"), married = c("Yes",
      "No", "Yes"), age = c(34L, 22L, 55L)), class = "data.frame", row.names = c("1",
      "2", "3"))
      
      > dput(NameList)
      c("Kyle", "Bob")
      

      【讨论】:

        【解决方案3】:

        我们可以使用bind_rows,如果我们使用命名为listtibble/data.frame 的'NameList' 中的键/列名称为name,则会生成缺失的列NA

        library(dplyr)
        bind_rows(NameFrame, tibble(name = NameList))
        

        注意:根据显示的值,“NameList”似乎是 vector 而不是 list)


        或者在base Rrbind

        rbind(NameFrame, data.frame(name = NameList, married = NA, age = NA))
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-11-27
          • 1970-01-01
          • 2021-12-22
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多