##使用:=引用来添加或更新一列 ###在一行中使用:=引用来添加或更新列. 注意: 额外的指定 (DT <- DT[...])是多余的 使用:=来更新V1列:
> DT[, V1 := round(exp(V1),2)]
这段代码没有显式的返回结果,而V1列从[1] 1 2 1 2 … 变成了 [1] 2.72 7.39 2.72 7.39 …
###使用:=引用来添加或更新多列 使用:=更新V1列和V2列:
> DT[, c("V1","V2") := list(round(exp(V1),2), LETTERS[4:6])]
同样没有显式的返回结果,V1列的结果与上相同,V2列从[1] "A" "B" "C" "A" "B" "C" … 变成: [1] "D" "E" "F" "D" "E" "F" … ###使用函数:= 上例的另一种写法,但会在书写时更易并齐。而且,当添加[]时,结果会返回在屏幕中
> DT[, ':=' (V1 =round(exp(V1),2),V2 = LETTERS[4:6])][]
与上例变化相同,但是由于在语句最后添加了[],这一结果会返回至屏幕 ###通过使用:=来移除一列 移除V1列
> DT[, V1 := NULL]
无显式的返回结果,但V1列变为NULL ###通过使用:=来移除多列 移除V1列与V2列
> DT[, c("V1","V2") := NULL]
无显式的返回结果,但V1列与V2列变为NULL
将一个包含列名的变量用小括号包裹起来,变量所传递的内容将会被删除 注意:列名为Cols.chosen的列将会被删除,这里不是删除"V1","V2"列
> Cols.chosen = c("V1","V2")
> DT[, Cols.chosen := NULL]
无显式的返回结果,列名为Cols.chosen的列将会被删除
删除指定变量Cols.chosen包含的V1列和V2列
> DT[, (Cols.chosen) := NULL]
无显式的返回结果,列名为V1和V2的列变为NULL