У меня есть набор данных, который, когда я забиваю, должен быть преобразован из непрерывной шкалы в категориальную. Каждое значение будет помещено в одну из этих категорий с 10 интервалами на основе минимума и максимума этого столбца. Поэтому, если минимум = 1 и максимум = 100, будет 10 категорий, так что любое значение от 1-10 = 1 и 11-20 = 2, 21-30 = 3, ..., 91-100 = 10. Вот как выглядят мои данные
df <- as.data.frame(cbind(test1 = sample(13:52, 15),
test2 = sample(16:131, 15)))
> df
test1 test2
1 44 131
2 26 83
3 74 41
4 6 73
5 83 20
6 63 110
7 23 29
8 42 64
9 41 40
10 10 96
11 2 39
12 14 24
13 67 30
14 51 59
15 66 37
Пока у меня есть функция:
trail.bin <- function(data, col, min, max) {
for(i in 1:10) {
for(e in 0:9) {
x <- as.data.table(data)
mult <- (max - min)/10
x[col >= min+(e*mult) & col < min+(i*mult),
col := i]
}
}
return(x)
}
Я пытаюсь сделать минимум и максимум, найти расстояние между интервалы будут (мульт), затем использовать два цикла в синтаксисе ссылки на data.table. Результат, на который я надеюсь:
df2
test1 test2
1 5 131
2 3 83
3 8 41
4 1 73
5 9 20
6 7 110
7 3 29
8 5 64
9 5 40
10 2 96
11 1 39
12 2 24
13 7 30
14 6 59
15 7 37
Спасибо!