いくつかの異なる方法を使用して、欠落値代入のためのチーム向けの包括的な自動化コードを作成しようとしています。ロジックは知っていますが、代入に選択する方法を決定する際に重要なデータクラスの識別に問題があります。
ここで、コードで変数の型を次のように識別します。
- 複数のレベルを持つカテゴリ/因子
- 1 と 0 の 2 つの水準を持つ因数分解 (バイナリ)
- 「はい」と「いいえ」のように、1 と 0 を除く 2 つのレベルで因数分解します。
- 連続
これが私が持っている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())
}
他の人が使用できるように、汎用にするために使用したロジックを改善しようとしていますが、ここで壁にぶつかっています。どんな助けにも感謝します。