Я пытаюсь создать имена столбцов в цикле for.Например, скажем, у меня есть следующее data.table
dt = structure(list(id = c("a", "b", "c"), val = c(1, 4, 6)), .Names = c("id",
"val"), row.names = c(NA, -3L), class = c("data.table", "data.frame"
))
Я запускаю for
-петл следующим образом
for(i in seq(1:1)) { # 1:1 not a bug.
varname = 'flag1'
cname = 'val'
threshold = 4
expr = parse(text=paste0(varname, ' := (', cname, ' > ', threshold, ')'))
dt[, eval(expr)]
}
Каким-то образом, когда я не используйте цикл for
и просто установите i=1
, это работает, то есть создается новый столбец с именем flag1
.Но если я запускаю его с циклом for
, то data.table
и я print(dt)
ничего не получаю.Может кто-то указать, что я делаю не так?Мой реальный пример использования заключается в создании логических имен столбцов в цикле for, который применяется к столбцам, которые сами хранятся как вектор строк.Любые указатели приветствуются.