R-将操作应用于数据表中的多个指定列

时间:2019-05-23 15:32:23

标签: r data.table apply variable-assignment

假设我有一个带有一列列的数据表。这些列中的许多列都采用怪异的Excel日期格式,因此它们看起来像这样: 47619

我可以使用以下代码将列正确转换为普通格式:

dt[, old_date:= as.Date(old_date, origin = "1899-12-30")]

我可以重复或添加到此行上以对其他列执行相同的操作。但是,一次对所有指定的列执行此操作的最佳方法是什么?我对使用Apply函数不太有经验,但是我认为这可能是一个开始的地方?

谢谢!

1 个答案:

答案 0 :(得分:2)

一个选项是在.SDcols中指定感兴趣的列,然后遍历Subset of Data.table.SD),进行处理,然后分配(:=)输出回列

nm1 <- names(dt)[1:5] # change here
dt[, (nm1) := lapply(.SD, as.Date, origin = "1899-12-30"), .SDcols = nm1]