首页 > 解决方案 > R - 将操作应用于数据表中的多个指定列

问题描述

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

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

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

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

谢谢!

标签: rdata.tableapplyvariable-assignment

解决方案


一个选项是指定感兴趣的列.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]

推荐阅读