r - R - 将操作应用于数据表中的多个指定列
问题描述
假设我有一个包含一堆列的数据表。其中许多列都采用奇怪的 Excel 日期格式,因此它们看起来像这样:47619。
我可以使用以下代码将列正确转换为正常格式:
dt[, old_date:= as.Date(old_date, origin = "1899-12-30")]
我可以重复或添加到这一行以对其他列执行相同的操作。但是,一次对所有指定列执行此操作的最佳方法是什么?我对使用应用函数的经验不是很丰富,但我认为这可能是一个开始的地方?
谢谢!
解决方案
一个选项是指定感兴趣的列.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]
推荐阅读
- java - 流口水+springboot+gradle
- ruby-on-rails - 上传带有 capistrano 'cap production deploy' 错误的 Rails 应用程序::authorize 尚未定义(ArgumentError)?
- audio - FFmpeg:如何将多个单声道文件合并为一个多声道文件?
- javascript - 如何以概率在离子中旋转轮盘游戏
- c++ - 在 C/C++ 中的 Unix 上的 PTY 伪终端上禁用 ECHO
- node.js - 树莓派上的 tfmini-plus 校验和错误
- react-native - 如何同时使用抽屉导航器和标签导航器?
- reactjs - 输入不会根据验证改变颜色 (rcc)
- sql-server - SQL Server 中多列索引的结构
- javascript - WxWidget WebView 上的 Openlayer Map 鼠标事件(已更新)