0
変更したい値(c("-", "...", "0 0")
)を持つ列(dt.commod
)のベクトルを作成します。次のコードでいくつかのバリエーションが働くと思いました(prodYears[j]
、get(prodYears[j])
)しかしそれらのどれもしません。rデータテーブルにiという名前の動的な名前が付いています
dt.commod <- data.table::as.data.table(openxlsx::read.xlsx(filePath, colNames = TRUE, cols = NULL,
sheet = commodName))
prodYears <- c("prod_qty_2011", "prod_qty_2012", "prod_qty_2013")
for (j in 1:length(prodYears)) {
dt.commod[get(prodYears[j]) %in% c("-", "...", "0 0"), prodYears[j] := "0" ]
}
代わりに私が直接、列名を実行した場合、
dt.commod[prod_qty_2011 %in% c("-", "...", "0 0"), prod_qty_2011 := "0"]
のように、それはそれがになっていないものを。関連する質問にもう少しブラウジングを行った後
奇数再現可能な例を見るのに役立つかもしれません。私は 'for(col in cols)DT [。(vals)、on = col、(col):=" 0 "]' – Frank