我有一个数据表,我想为每个唯一的日期创建一个新列,然后在日期与列名匹配的每一行中分配一个 1
我已经使用 for 循环完成了这项工作,但我想知道是否有任何方法可以使用 data.table 和 set 对其进行优化?
这是一个例子
dt <- data.table(Week_Day = c("Monday", "Tuesday", "Wednesday",
"Thursday", "Friday", "Saturday", "Sunday"))
Day <- unique(dt$Week_Day)
for (i in 1:length(Day)) {
if (Day[i] != "Sunday") {
dt[, Day[i] := ifelse(Week_Day == Day[i], 1, 0)]
}
}
我的表是 298k 行,虽然执行时间不长(如下),但它是长脚本的一部分,而且我有很多低效的循环,所以我试图降低整体运行时间。
运行时间:
user system elapsed
0.99 0.06 1.05
提前致谢。