У меня есть набор данных, который имеет 10 столбцов, и это непрерывные данные. Образец того же самого собирается через dput () и показан ниже:
structure(list(x1 = c(12.800454545, 17.71, 5.805, 13.111875, 14.121428571, 12.800454545, 17.71, 5.805, 13.111875, 14.121428571),
x2 = c(281.61, 230.23, 11.61, 209.79, 296.55, 281.61, 230.23, 11.61, 209.79, 296.55),
x3 = c(19.41, 13.91, 0, 2.37, 23.49, 19.41, 13.91, 0, 2.37, 23.49),
x4 = c(65L, 62L, 3L, 41L, 45L, 65L, 62L, 3L, 41L, 45L),
x5 = c(0.571428571, 1.857142857, 21.14285714, 2.571428571, 1.428571429, 0.571428571, 1.857142857, 21.14285714, 2.571428571, 1.428571429),
x6 = c(52L, 40L, 3L, 22L, 33L, 52L, 40L, 3L, 22L, 33L),
x7 = c(44.53, 15.38, 5.97, 4.97, 13.94, 44.53, 15.38, 5.97, 4.97, 13.94),
x8 = c(65L, 53L, 3L, 41L, 45L, 65L, 53L, 3L, 41L, 45L),
x9 = c(6L, 4L, 1L, 1L, 1L, 6L, 4L, 1L, 1L, 1L),
x10 = c(46.43, 17.52, 0, 11.73, 0, 46.43, 17.52, 0, 11.73, 0)),
row.names = c(1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L), class = "data.frame")
Я хочу написать автоматическую функцию, которая бы разбивала каждую переменную на 5 групп, используя квантили, создавая макеты и добавляя их в набор данных в виде столбцов.
Я пытался сделать что-то подобное, но не смог сделать это:
create a copy of dataframe to work on dummy vars creations
d1 <- df
library(dplyr)
library(Hmisc)
for (i in 1:length(d1)){
#print(table(cut2(d1[,i], g=5)))
aa <- NULL
bb <- NULL
x1 <- select(d1, i)
aa <- cut2(x1, g=5)
# Create dummy variables
bb <- model.matrix(~ aa + 0, data=df)
colnames(bb) <- gsub("aa","",colnames(bb)) #clean column names
bb <- as.data.frame(bb) # convert matrix to dataframe
}