23

私はdata.frame(またはマトリックスまたはその他の表形式のデータ構造オブジェクト)を持っています:

df = data.frame(field1 = c(1,1,1),field2 = c(2,2,2),field3 = c(3,3,3))

そして、その列の一部をコピーしたい-以下のベクトルで与えられる:

fields = c("field1","field2")

すでに 1 つ以上の列がある新しい data.table に:

dt = data.table(fieldX = c("x","x","x"))

以下よりも効率的な(そしてエレガントな)ものを探しています:

for(f in 1:length(fields))
{
dt[,fields[f]] = df[,fields[f]]
}
4

2 に答える 2

4

あなたはcbindが欲しいと思います

cbind(dt, df[, 1:2])
# fieldX field1 field2
# 1      x      1      2
# 2      x      1      2
# 3      x      1      2
于 2013-09-28T22:03:20.303 に答える