У меня есть очень большая таблица данных, которую я хочу суммировать по группам. Для обобщения я использую data.table и .SD. Проблема в том, что мне нужно назвать столбцы, которые я хочу обобщить, и это не всегда одно и то же. В зависимости от входящих данных, иногда у меня больше столбцов, а иногда меньше. Хорошо то, что интересующие меня столбцы всегда имеют один и тот же формат, а именно: f<X>_<Y>, m<X>_<Y>, f<X>, m<X>
.
это список всех возможных имен столбцов:
ageColsPossible <- c("m0_9", "m10_19", "m20_29", "m30_39", "m40_49", "m50_59", "m60_69",
"f0_9", "f10_19", "f20_29", "f30_39", "f40_49", "f50_59", "f60_69")
если данных недостаточно, моя таблица data.table будет содержать только некоторые из этих столбцов. Я хотел бы получить вектор с именами столбцов, которые доступны в данных:
> names(myData)
[1] "clientID" "policyID" "startYear" "product" "NOplans" "grp"
[7] "policyid" "personid" "age" "gender" "dependant" "location"
[13] "region" "exposure" "startMonth" "cover_effective_date" "endexposuredate" "fromdate"
[19] "enddate" "planHistSufficiency" "productRank" "claim10month" "claim11month" "claim12month"
[25] "claim9month" "NA20_29" "NA30_39" "NA40_49" "NA50_59" "f0_9"
[31] "f10_19" "f20_29" "f30_39" "f40_49" "f50_59" "f60_69"
[37] "m0_9" "m10_19" "m20_29" "m30_39" "m40_49" "m50_59"
[43] "m60_69" "u0_9" "u10_19" "u20_29" "u30_39" "u40_49"
[49] "u50_59" "u60_69" "uNA"
Я знаю regrex
и думал что-то в этой строке: regex = "(m|f)(\\d+)_?(\\d+)?"
, но у меня есть также где-то видел функцию patern()
. К сожалению, я больше не могу его найти.
есть идеи?