como criar um histograma de frequência com intervalos não uniformes predefinidos?

Nov 28 2020

Como posso fazer um histograma no RStudio com a frequência no eixo y e nos intervalos não uniformes predefinidos do eixo x, por exemplo: 0-50, 50-150, 150-500, 500-2000.

Tenho dados hipotéticos, pois não gostaria de compartilhar meus dados originais.

data <- c(1,1.2,40,1000,36.66,400.55,100,99,2,1500,333.45,25,125.66,141,5,87,123.2,61,93,85,40,205,208.9)

Respostas

1 Muon Nov 29 2020 at 03:12

Defina as quebras que você deseja com o breaksargumento na histfunção.

hist(data, breaks=c(0, 50, 150, 500, 2000), freq=TRUE)

Atualizar

Se quiser larguras de barra uniformes, você precisa colocar seus dados em um formato categórico em vez de contínuo. Você pode conseguir isso fazendo o seguinte.

# Cut your data into categories using your breaks
data <- cut(data, 
            breaks=c(0, 50, 150, 500, 2000),
            labels=c('0-50', '50-150', '150-500', '500-2000'))
# Make a data table (i.e. a frequency count)
data <- table(data)
# Plot with `barplot`
barplot(data)