Count

Tidyverse

length(df) ## Número de linhas

nrow(df) ## Número de linhas

df %>% 
      count(col1) ## frequência para uma coluna
      
df %>% 
    count(col1,sort = T) ## frequência ordenada
      
df %>% 
      count(col1,col2,...) Frequência múltipla
      
df %>% 
       count(col1,col2,...,sort = T) Frequência múltipla ordenada


PostgreSQL


SELECT COUNT(*) 
FROM information_schema.columns 
WHERE table_name = 'df'; // Número de colunas  

SELECT COUNT(*) 
FROM df; // Número de linhas  

SELECT col1, COUNT(*) 
FROM df 
GROUP BY col1; // Frequência para uma coluna  

SELECT col1, COUNT(*) 
FROM df
GROUP BY col1 
ORDER BY COUNT 
DESC; // Frequência ordenada para uma coluna  

SELECT col1, col2,... COUNT(*) 
FROM df 
GROUP BY col1, col2;  // Frequência múltipla

SELECT col1, col2,... COUNT(*) 
FROM df 
GROUP BY col1 
ORDER BY COUNT 
DESC;   // Frequência múltipla ordenada por uma  coluna

SELECT col1,col2, COUNT(*) 
FROM df 
GROUP BY col1, col2 
ORDER BY COUNT 
DESC;  // Frequência múltipla ordenada

Summarize ou summarise

Sumário sem agrupamento

Tidyverse

Estamos assumindo que a coluna col1 é numérica.


df %>% 
   summarize(n = n(),
             min = min(col1),
             max = max(col1),
             media = mean(col1),
             mediana = median(col1)
             desvio_padrao = sd(col1),
             )


PostgreSQL

Bases relacionais não têm noção intrínseca de ordem, o que torna a verificação da mediana e outras percentis ou quantis mais verboso.

SELECT COUNT(*) AS n,  
      MIN(col1) AS min,  
      MAX(col1) AS max,  
      AVG(col1) AS media,  
      PERCENTILE_CONT(0.50) WITHIN GROUP (ORDER BY col1 ASC) AS mediana,  
      STDDEV(col1) AS desvio_padrao  
      FROM df;
      

Sumário com agrupamento

Tidyverse

Estamos assumindo que a coluna col1 é numérica.


df %>% 
   group_by(grupo) %>% 
   summarize(n = n(),
             min = min(col1),
             max = max(col1),
             media = mean(col1),
             mediana = median(col1)
             desvio_padrao = sd(col1),
             )


PostgreSQL

Bases relacionais não têm noção intrínseca de ordem, o que torna a verificação da mediana e outras percentis ou quantis mais verboso.

SELECT grupo, COUNT(*) AS n,  
      MIN(col1) AS min,  
      MAX(col1) AS max,  
      AVG(col1) AS media,  
      PERCENTILE_CONT(0.50) WITHIN GROUP (ORDER BY col1 ASC) AS mediana,  
      STDDEV(col1) AS desvio_padrao  
      FROM df  
      GROUP BY grupo;  
      

Sumário de vetores(R)/arrays(PostgreSQL)

R


mean(c(8,7,1,4))


PostgreSQL

SELECT AVG(a) 
AS media 
FROM UNNEST(ARRAY[8,7,1,4]) 
AS a;