Имам цифров вектор var
с имена (изход от predict.cv.glmnet)
var<-c(5.74,0.00,0.15,0.00,0.04,0.00,0.00,0.00,1.81,0.00)
names(var)<- cbind("(Intercept)","as.factor(holiday)1","as.factor(season)2","as.factor(season)3","as.factor(season)4","as.factor(weathersit)2", "as.factor(weathersit)3","windspeed","temp","hum")
(Intercept) as.factor(holiday)1 as.factor(season)2 as.factor(season)3 as.factor(season)4 as.factor(weathersit)2
5.74 0.00 0.15 0.00 0.04 0.00
as.factor(weathersit)3 windspeed temp hum
0.00 0.00 1.81 0.00
Искам да извлека имена на променливи с ненулеви стойности, а също и агрегатни нива на фактори (т.е. ако поне едно ниво на фактор е различно от нула, тогава целият фактор трябва да бъде включен. Изходът трябва да пропусне нивата на факторите. Търся за част от кода, който ще ми даде това като резултат:
"(Intercept)" "as.factor(season)" "temp"
Освен това имам налична променлива с имена на фактори fac
:
fac<-c("as.factor(holiday)","as.factor(season)","as.factor(weathersit)")
"as.factor(holiday)" "as.factor(season)" "as.factor(weathersit)"
и мислех да агрегирам фактори с подобно име, като същевременно пропускам техните нива и проверявам дали сборът на агрегираните фактори е >0, но не мога да го кодирам.