我正在嘗試使用幾種不同的方法爲我的團隊創建一個全面的自動化代碼,用於缺少值填補。我知道邏輯,但是我在數據類別識別方面遇到了麻煩,這在確定選擇插補方法時很重要。如何識別R中數據框中的變量類型?
現在,我想我的代碼,以確定的變量類型:多層次
- 範疇/因子與二級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())
}
我試圖改善邏輯之我已經習慣使它成爲通用的,以便其他人可以使用它,但我在這裏遇到了一堵牆。感謝任何幫助。
你可以使用'類()'和/或'STR()'和一些簡單的控制流語句 –
@哈克-R它不工作,我打算結果的方式。 –
圖片不是代碼/數據。他們是爲圖表。 – hrbrmstr