[英]Updating column using data.table when using global variable as column name
我正在嘗試根據列中的值是否與外部變量匹配來更新 data.table 中的列。 我遇到的問題是在 data.table 語法中使用全局變量作為列名。
明確指定列名按預期工作並更新列。
dt[,`1:4880` := ifelse(`1:4880`==allele, 2, 1)]
但是,當通過變量引用該列時,我無法更新該列:
colname="1:4880"
dt[,..colname := ifelse(..colname==allele, 2, 1)]
output 不會更新由變量名稱描述的列中的值,而是寫入 df$..colname。 奇怪的是,output 是正確的,所以 ifelse function 正在按預期工作,它只是將 output 寫入錯誤的列名。
有沒有辦法讓:= 運算符識別指定為變量的列名?
在lhs
上,我們可以用()
包裝來評估值,然后使用get
或在.SDcols
中指定它
dt[, (colname) := ifelse(.SD[[1]] ==allele, 2, 1), .SDcols = colname]
目前尚不清楚allele
是另一列還是具有某些價值的 object
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.