Hola,
Lo puedes resolver de esta forma...
He comentado el código para que puedas seguir el resultado de cada etapa.
#----------------
library(randomNames)
library(dplyr)
library(tidyr)
#---- Genero nombres aleatorios de "pacientes".
## - Estos son algunos de los que coincidirian
nom_coin <- randomNames(50, ethnicity = 4)
## - A los que coincidirian les anado otros puramente aleatorios
mis_datos <- data.frame(
prog_A = sample(c(nom_coin, randomNames(70, ethnicity = 1)), 100, replace
= FALSE),
prog_B = sample(c(nom_coin, randomNames(70, ethnicity = 1)), 100, replace
= FALSE),
prog_C = sample(c(nom_coin, randomNames(70, ethnicity = 1)), 100, replace
= FALSE),
prog_D = sample(c(nom_coin, randomNames(70, ethnicity = 1)), 100, replace
= FALSE)
)
# - Construyo las combinaciones dos a dos de las columnas
res_cols <- as.data.frame(t(combn(names(mis_datos), 2)))
res_comb <- as.data.frame(t(combn(1:ncol(mis_datos), 2)))
res_tot <- cbind(res_cols, res_comb)
# - Comparo las parejas de columnas
for(i in 1:nrow(res_tot)) {
val_inter <- intersect(mis_datos[, res_comb[i,1]], mis_datos[,
res_comb[i,2]])
res_tot[i, 5] <- length(val_inter)
}
res_out <- res_tot[, c(1,2,5)]
names(res_out)[3] <- c('Qty')
# - Construyo la tabla final
res_table <- res_out %>%
pivot_wider(names_from = V2, values_from = Qty )
res_table
#----------------
Saludos,
Carlos Ortega
www.qualityexcellence.es
El vie., 25 oct. 2019 a las 20:17, juan manuel dias (<[email protected]>)
escribió:
> Hola,
>
> Tengo un tabla de datos con pacientes asistidos, para los cuáles tengo
> variables como dni, género, programa de atención etc. Hay pacientes que
> atendieron en más de un programa por lo cuál se repiten en la tabla. Lo que
> quiero es poder contar con una matriz que me permita identificar la
> cantidad de pacientes que coinciden entre programas.
>
> Va un ejemplo:
>
> [image: image.png]
> Intenté de varias formas pero no consigo hacerlo.
>
> Muchas gracias!
>
> Saludos.
> _______________________________________________
> R-help-es mailing list
> [email protected]
> https://stat.ethz.ch/mailman/listinfo/r-help-es
>
--
Saludos,
Carlos Ortega
www.qualityexcellence.es
_______________________________________________
R-help-es mailing list
[email protected]
https://stat.ethz.ch/mailman/listinfo/r-help-es