对R非常陌生,需要一些专家的建议。我有一个数据集,其中大约有21列是分类的和连续的。下面是一些例子:测试信用数据
类别变量列,如性别、学历、学生、年龄、..都属于整数类。我想将它们转换为factor数据类型。尝试像这样的东西:
factorvar=c("Gender","Academic_Qualification","Marital","Repayment_Status_Jan",
"Repayment_Status_Feb", "Repayment_Status_March",
"Repayment_Status_April", "Repayment_Status_May",
"Repayment_Status_June","agebin")
for(factor_var in names(Traincreddata)%in%factorvar){
Traincreddata[factor_var]=as.factor(Traincreddata$factor_var)
}然而,我得到一个错误:[<-.data.frame(*tmp*,factor_var,value = integer(0))中的错误:替换有0个项目,需要22500
我知道错误是什么,但我不确定如何修复这个错误。我可以一个接一个地处理所有这些变量,但需要更短的代码。
谢谢你,哈里什
发布于 2020-07-27 01:28:42
names(Traincreddata)%in%factorvar)会给你一个true/false的值。要获取实际名称,请使用names(Traincreddata)[names(Traincreddata)%in%factorvar)]
在任何情况下,您都可以使用lapply而不是for循环
names <- names(Traincreddata)[names(Traincreddata)%in%factorvar)]
Traincreddata[,names] <- lapply(Traincreddata[,names] , factor)https://stackoverflow.com/questions/63103199
复制相似问题