【发布时间】:2021-06-25 08:54:47
【问题描述】:
我需要将字符向量分配到 R 数据表的第一行。但到目前为止,我所有的尝试都让它成为最后一个。当我试图给出行号时,它会给出关于列数的警告。这是唯一有效的,但到最后一行。
Character_vector <- colnames(DT)
DT_NEW <- rbind(DT,as.list(Character_vector, ))
DT_NEW
【问题讨论】:
我需要将字符向量分配到 R 数据表的第一行。但到目前为止,我所有的尝试都让它成为最后一个。当我试图给出行号时,它会给出关于列数的警告。这是唯一有效的,但到最后一行。
Character_vector <- colnames(DT)
DT_NEW <- rbind(DT,as.list(Character_vector, ))
DT_NEW
【问题讨论】:
在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)
【讨论】: