use*_*545 16 r data.table
我有一个data.frame(或矩阵或任何其他表格数据结构对象):
df = data.frame(field1 = c(1,1,1),field2 = c(2,2,2),field3 = c(3,3,3))
Run Code Online (Sandbox Code Playgroud)
我想复制其部分列 - 在下面的向量中给出:
fields = c("field1","field2")
Run Code Online (Sandbox Code Playgroud)
到已有1列或更多列的新data.table:
dt = data.table(fieldX = c("x","x","x"))
Run Code Online (Sandbox Code Playgroud)
我正在寻找比以下更有效(和优雅)的东西:
for(f in 1:length(fields))
{
dt[,fields[f]] = df[,fields[f]]
}
Run Code Online (Sandbox Code Playgroud)
Kev*_*hey 24
你可以使用cbind:
cbind(dt, df[fields])
Run Code Online (Sandbox Code Playgroud)
但是,最有效的方法仍然可能是data.table通过引用使用赋值:
dt[, (fields) := df[fields]]
Run Code Online (Sandbox Code Playgroud)