O código abaixo calcula a moda em dados multimodal, a dúvida é, como transformar o código abaixo utilizando pipe?
d1 <- c(1,2,3,5,5,6,6)
d2 <- table(d1)
d3 <- as.matrix(d2)
d4 <- subset(d3,d3[,1]==max(d3[,1]))
d4
O código abaixo calcula a moda em dados multimodal, a dúvida é, como transformar o código abaixo utilizando pipe?
d1 <- c(1,2,3,5,5,6,6)
d2 <- table(d1)
d3 <- as.matrix(d2)
d4 <- subset(d3,d3[,1]==max(d3[,1]))
d4
Olá Pedro,
encontrei uma forma de fazer, mas precisei trocar algumas funções, como a função as.matrix por exemplo.
Ficaria assim:
d4 <- c(1,2,3,5,5,6,6) %>%
table %>%
as.data.frame() %>%
rename("Obs" = ".") %>%
filter(Freq == max(Freq))
d4
Espero ter ajudado!
Ajudou sim, tenho outra situação que agarrou aqui, se eu tiver um data frame como este:
data.frame(x = c(1,1,2,2,3,4,5), y = c(2,3,4,4,5,5,5))
a coluna x é bimodal, com moda 1 e 2 e a coluna y tem moda 5, tentei utilizar um lapply mas sem sucesso, talvez o purrr resolvesse, alguma sugestão para encontrar a moda nas colunas?
Usando o lapply, você pode definir a função que calcula a moda e usar da seguinte forma:
dados <- data.frame(x = c(1,1,2,2,3,4,5),
y = c(2,3,4,4,5,5,5))
Modes <- function(x) {
ux <- unique(x)
tab <- tabulate(match(x, ux))
ux[tab == max(tab)]
}
resultado <- lapply(dados, Modes)
resultado %>% unlist()