Я столкнулся с той же проблемой, когда пытался использовать kmodes для кластеризации следующего cateforical dataframe:
> summary(raw_df)
Age Years_At_Present_Employment Marital_Status_Gender Dependents Housing Job
(0,20] : 80 A71: 310 A91: 250 1:4225 A151: 895 A171: 110
(20,30]:1975 A72: 860 A92:1550 2: 775 A152:3565 A172:1000
(30,45]:2015 A73:1695 A93:2740 A153: 540 A173:3150
(45,60]: 705 A74: 870 A94: 460 A174: 740
(60,75]: 225 A75:1265
Foreign_Worker Current_Address_Yrs Telephone
A201:4815 Min. :1.000 A191:2980
A202: 185 1st Qu.:2.000 A192:2020
Median :3.000
Mean :2.845
3rd Qu.:4.000
Max. :4.000
Тогда я получил ошибку
> (raw_clusters <- klaR::kmodes(raw_df, 5))
Error: Column index must be at most 4 if positive, not 6
Кажется, что эта реализация kmodes(klaR) требует, чтобы категориальные переменные были числовыми, поэтому вам нужно преобразовать переменные из факторов в числовые (учитывая, что они действительно категоричны)
raw_4clust <- raw_df %>%
mutate(
Age = as.numeric(Age),
Years_At_Present_Employment = as.numeric(Years_At_Present_Employment),
Marital_Status_Gender = as.numeric(Marital_Status_Gender),
Housing = as.numeric(Housing),
Job = as.numeric(Job),
Foreign_Worker = as.numeric(Foreign_Worker),
Telephone = as.numeric(Telephone)
)
, после этого это сработало для меня.
Надеюсь, это поможет