Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/80.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.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
只需在列名中匹配字符串模式,即可将大量data.table列转换为factor_R_Pattern Matching_Data.table_Type Conversion - Fatal编程技术网

只需在列名中匹配字符串模式,即可将大量data.table列转换为factor

只需在列名中匹配字符串模式,即可将大量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,然后将(:=)输出分配回感兴趣的列

我正在尝试将data.table中名称中包含特定字符串“\u cat”的几列从整数转换为分类数据类型。data.table中的总列数很大(超过700列),我不想通过700多列来找出哪些列的名称中有_cat来更改数据类型。(它们随机出现在数据表中)

首先,我得到一个逻辑数组,该数组指示哪些列的名称中有“\u cat”:

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)