【发布时间】:2017-09-16 20:06:21
【问题描述】:
我在 R 中有一个 data.table 并想创建一个新列。假设我将日期列名称保存为变量,并希望在新列中将 _year 附加到该名称。我可以通过仅指定名称来执行正常路由,但是如何使用 date_col 变量创建新的列名称。
这是我尝试过的。我想要的最后两个不起作用。
dat = data.table(one = 1:5, two = 1:5,
order_date = lubridate::ymd("2015-01-01","2015-02-01","2015-03-01",
"2015-04-01","2015-05-01"))
dat
date_col = "order_date"
dat[,`:=`(OrderDate_year = substr(get(date_col)[!is.na(get(date_col))],1,4))][]
dat[,`:=`(new = substr(noquote(get(date_col))[!is.na(noquote(get(date_col)))],1,4))][]
dat[,`:=`(paste0(date_col, "_year", sep="") = substr(noquote(get(date_col))[!is.na(noquote(get(date_col)))],1,4))][]
dat[,`:=`(noquote(paste0(date_col, "_year", sep="")) = substr(noquote(get(date_col))[!is.na(noquote(get(date_col)))],1,4))][]
【问题讨论】:
标签: r data.table