我正在尝试为我的团队创建一个全面的自动化代码,以使用几种不同的方法进行缺失值插补。我知道逻辑,但我在数据类识别方面遇到了麻烦,这对于决定选择哪种方法进行插补很重要。
现在,我希望我的代码将变量的类型标识为:
- 具有多个级别的分类/因子
- 具有两个级别 1 和 0(二进制)的因子
- 除 1 和 0 之外的两个级别的因子,例如“是”和“否”
- 连续的
这是我拥有的 WIP 代码,但它不能很好地完成工作,我理解逻辑将失败,因为数据不同
data_type_vector<-function(x)
{
categorical_index<-character()
binary_index<-character()
continuous_index<-character()
binary_index_1<-character()
data<-x
for(a in 1:ncol(data)){
if(length(unique(data[,a])) >= 2 & length(unique(data[,a])) < 15 &
max(as.character(data[,a]),na.rm=T) != 1 & min(as.character(data[,a]),na.rm=T) !=0)
{
categorical_index<-c(categorical_index,colnames(data[a]))
} else if (max(as.character(data[,a]),na.rm=T) == 1 & min(as.character(data[,a],na.rm=T))==0) {
binary_index<-c(binary_index,colnames(data[a]))
} else if (length(unique(data[,a]))==2) {
#this basically defines categorical variables with two categories like male/female
#which don't have 1 0 values in the data but are still binary
#we are keeping them seperate for the purpose of further analysis
binary_index_1<-c(binary_index_1,colnames(data[a]))
} else
{
continuous_index<-c(continuous_index,colnames(data[a]))
}
}
assign("categorical_index",categorical_index,envir=globalenv())
assign("binary_index",binary_index,envir=globalenv())
assign("continuous_index",continuous_index,envir=globalenv())
assign("binary_index_1",binary_index_1,envir=globalenv())
}
我正在尝试改进我用来使其通用的逻辑,以便其他人可以使用它,但我在这里碰壁了。感谢任何帮助。