Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R-对数据表中的多个指定列应用操作_R_Data.table_Apply_Variable Assignment - Fatal编程技术网

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

R-对数据表中的多个指定列应用操作,r,data.table,apply,variable-assignment,R,Data.table,Apply,Variable Assignment,假设我有一个包含一串列的数据表。这些列中的很多都是奇怪的Excel日期格式,所以它们看起来像这样:47619 我可以使用以下代码将列正确转换为正常格式: dt[, old_date:= as.Date(old_date, origin = "1899-12-30")] 我可以重复或添加到这一行,以对其他列执行相同的操作。但是,一次对所有指定列执行此操作的最佳方法是什么?我对使用apply函数不是很有经验,但我认为这可能是一个开始 谢谢 一个选项是在.SDcols中指定感兴趣的列,然后遍历Dat

假设我有一个包含一串列的数据表。这些列中的很多都是奇怪的Excel日期格式,所以它们看起来像这样:47619

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

dt[, old_date:= as.Date(old_date, origin = "1899-12-30")]
我可以重复或添加到这一行,以对其他列执行相同的操作。但是,一次对所有指定列执行此操作的最佳方法是什么?我对使用apply函数不是很有经验,但我认为这可能是一个开始


谢谢

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

nm1 <- names(dt)[1:5] # change here
dt[, (nm1) := lapply(.SD, as.Date, origin = "1899-12-30"), .SDcols = nm1]
您可以执行dt[,nm1:=lappy.SD,as.Date,origin=1899-12-30,.SDcols=nm1],其中nm1