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.vi...@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@r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es > -- Saludos, Carlos Ortega www.qualityexcellence.es [[alternative HTML version deleted]] _______________________________________________ R-help-es mailing list R-help-es@r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es