只需在列名中匹配字符串模式,即可将大量data.table列转换为factor
我正在尝试将data.table中名称中包含特定字符串“\u cat”的几列从整数转换为分类数据类型。data.table中的总列数很大(超过700列),我不想通过700多列来找出哪些列的名称中有_cat来更改数据类型。(它们随机出现在数据表中) 首先,我得到一个逻辑数组,该数组指示哪些列的名称中有“\u cat”:只需在列名中匹配字符串模式,即可将大量data.table列转换为factor,r,pattern-matching,data.table,type-conversion,R,Pattern Matching,Data.table,Type Conversion,我正在尝试将data.table中名称中包含特定字符串“\u cat”的几列从整数转换为分类数据类型。data.table中的总列数很大(超过700列),我不想通过700多列来找出哪些列的名称中有_cat来更改数据类型。(它们随机出现在数据表中) 首先,我得到一个逻辑数组,该数组指示哪些列的名称中有“\u cat”: cat_id <- grepl('_cat', colnames(dt)) cat_id这不是分组操作。要选择列,请使用.SDcols,然后将(:=)输出分配回感兴趣的列
cat_id <- grepl('_cat', colnames(dt))
cat_id这不是分组操作。要选择列,请使用.SDcols
,然后将(:=
)输出分配回感兴趣的列
dt[, (cat_id) := lapply(.SD, factor), .SDcols = cat_id ]
在哪里
cat_id <- grep('_cat', colnames(dt), value = TRUE)
cat\u id
cat_id <- grep('_cat', colnames(dt), value = TRUE)