[R-es] Contar categorías después de ciertos valores

Carlos Ortega cof en qualityexcellence.es
Vie Mar 9 21:43:59 CET 2018


Hola,

Esta es una forma...

#-----------------

x <- c(3, "A", "B", 5, "A", 4, 5, "A", "A", 3)
x_n <- as.numeric(x)

cat_val <- unique(x[is.na(x_n)])
num_val <- x_n[!is.na(x_n)]

df <- data.frame(
                  x_n = x_n,
                  y = 1:length(x_n),
                  x = x,
                  x_l = is.na(df$x_n)
                 )

num_df <- data.frame( nume = 0, letra = 0)
cont <- 0
for(i in 1:nrow(df)) {
  if (df[i, 4] == FALSE & df[i + 1, 4] != FALSE & i < nrow(df)) {
    num <- df[i, 1]
  }
  if (df[i, 4] != FALSE) {
    cont <- cont + 1
    num_df[cont, 1]  <-  num
    num_df[cont, 2] <- as.vector(df[i, 3])
  }
  if (df[i, 4] == FALSE & df[i + 1, 4] == FALSE & i < nrow(df)) {
    cont <- cont + 1
    num <- df[i, 1]
    num_df[cont, 1] <-  num
    num_df[cont, 2] <- 0
  }

}


library(dplyr)
library(tidyr)

res_df <- num_df %>%
  group_by(nume, letra) %>%
  summarize( res = n()) %>%
  spread( letra, res)

res_df[is.na(res_df)] <- 0
res_df

#-----------------


Que produce este resultado:

> res_df
# A tibble: 3 x 4
# Groups:   nume [3]
   nume   `0`     A     B
  <dbl> <dbl> <dbl> <dbl>
1    3.    0.    1.    1.
2    4.    1.    0.    0.
3    5.    0.    3.    0.

Saludos,
Carlos Ortega
www.qualityexcellence.es


El 9 de marzo de 2018, 16:02, <Guillermo.Vinue en uv.es> escribió:

> Hola,
>
> Estoy intentando averiguar cómo contar el número de categorías situadas
> después de ciertos valores. Por ejemplo, en el siguiente vector:
>
> x <- c(3, "A", "B", 5, "A", 4, 5, "A", "A", 3)
>
> el resultado que quisiera obtener es:
>
> Valor -> Resultado
>     3 -> 1 A y 1 B
>     4 -> 0 A y 0 B
>     5 -> 3 A y 0 B
>
> ¿Alguien tiene alguna sugerencia?.
>
> Muchas gracias de antemano.
>
> Guillermo
>
> _______________________________________________
> R-help-es mailing list
> R-help-es en r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es
>



-- 
Saludos,
Carlos Ortega
www.qualityexcellence.es

	[[alternative HTML version deleted]]



Más información sobre la lista de distribución R-help-es