Tolong saya butuh bantuan dalam memperbaiki kode di bawah ini, saya mencoba memecah data menjadi 4 kategori berdasarkan kuantil mereka masuk tetapi hasilnya ternyata menjadi sesuatu yang berbeda.

for(i in data[[2]]){
 if(i>=min(data$PI) & i<quantile(data$PI, probs = .25)){
        data[[2]] = "Low income"
    }

   else if (i>=quantile(data$PI, probs = .25) & i<quantile(data$PI, probs = .5)){
        data[[2]] = "Average income"
    }

   else if(i>=quantile(data$PI, probs = .5) & i<quantile(data$PI, probs = .75)){
        data[[2]] = "High income"
    }
    else{
        data[[2]] = "Very high income"
    }

}

Output setelah menjalankan kode di bawah ini hanya memberikan satu kategori, bukan 4

table(data[[2]])

Pendapatan rendah 1050

r
0
Billy 9 Maret 2020, 06:22

1 menjawab

Jawaban Terbaik

Seperti yang disebutkan oleh @Edward, Anda dapat menggunakan cut atau findInterval untuk melakukan ini tanpa pengulangan. Mencoba :

data$category <- c("Low income","Average income","High income","Very high income")
                 [findInterval(data$PI, quantile(data$PI, c(0.25, 0.5, 0.75))) + 1]

Ini menetapkan nilai "Penghasilan rendah", "Pendapatan rata-rata" dll ke kolom category berdasarkan rentang di mana nilai PI berada.

2
Ronak Shah 9 Maret 2020, 03:52