【问题标题】:Rbind character vector to be first row in datatable rRbind 字符向量成为数据表 r 中的第一行
【发布时间】:2021-06-25 08:54:47
【问题描述】:

我需要将字符向量分配到 R 数据表的第一行。但到目前为止,我所有的尝试都让它成为最后一个。当我试图给出行号时,它会给出关于列数的警告。这是唯一有效的,但到最后一行。

Character_vector <- colnames(DT)

DT_NEW <- rbind(DT,as.list(Character_vector, ))
DT_NEW

【问题讨论】:

    标签: r datatable rbind


    【解决方案1】:

    rbind 中使用不同的参数顺序以及用列名构造行的正确方法:

    library(datatable)
    
    DT = data.table(a=c("a1","a2","a3"),
                b=c("b1","b2","b3"),
                c=c("c1","c2","c3"))
    Character_vector = colnames(DT)
    
    result = rbind(setnames(do.call(data.table,
                                    as.list(Character_vector)),
                            Character_vector),
                   DT)
    

    得到这样的框架:

    > result
        a  b  c
    1:  a  b  c
    2: a1 b1 c1
    3: a2 b2 c2
    4: a3 b3 c3
    

    要展开所有发生的事情,只需按顺序排列单行列名的rbind 和原始框架DT

    single_row_with_col_names = do.call(data.table, as.list(Character_vector))
    setnames(single_row_with_col_names, Character_vector)
    result = rbind(single_row_with_col_names,
                   DT)
    

    【讨论】:

      猜你喜欢
      • 2020-04-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-30
      • 2019-05-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多