<div dir="ltr"><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small">Hola,</div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small">Lo puedes resolver de esta forma...</div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small">He comentado el código para que puedas seguir el resultado de cada etapa.<br></div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small">#----------------<br>library(randomNames)<br>library(dplyr)<br>library(tidyr)<br></div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small">#---- Genero nombres aleatorios de "pacientes".<br></div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small">## - Estos son algunos de los que coincidirian<br></div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small">nom_coin <- randomNames(50, ethnicity = 4)<br></div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small">## - A los que coincidirian les anado otros puramente aleatorios<br></div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small">mis_datos <- data.frame(<br>  prog_A = sample(c(nom_coin, randomNames(70, ethnicity = 1)), 100, replace = FALSE),<br>  prog_B = sample(c(nom_coin, randomNames(70, ethnicity = 1)), 100, replace = FALSE),<br>  prog_C = sample(c(nom_coin, randomNames(70, ethnicity = 1)), 100, replace = FALSE),<br>  prog_D = sample(c(nom_coin, randomNames(70, ethnicity = 1)), 100, replace = FALSE)<br>)<br><br></div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small"># - Construyo las combinaciones dos a dos de las columnas<br></div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small">res_cols <- as.data.frame(t(combn(names(mis_datos), 2)))<br>res_comb <- as.data.frame(t(combn(1:ncol(mis_datos), 2)))<br>res_tot <- cbind(res_cols, res_comb)<br></div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small"># - Comparo las parejas de columnas<br></div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small">for(i in 1:nrow(res_tot)) {<br>      val_inter <- intersect(mis_datos[, res_comb[i,1]], mis_datos[, res_comb[i,2]])<br>      res_tot[i, 5] <- length(val_inter)<br>}<br>res_out <- res_tot[, c(1,2,5)]<br>names(res_out)[3] <- c('Qty')<br></div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small"># - Construyo la tabla final<br></div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small">res_table <- res_out %>%<br>   pivot_wider(names_from = V2, values_from = Qty )<br></div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small">res_table<br></div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small">#----------------</div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small">Saludos,</div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small">Carlos Ortega</div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small"><a href="http://www.qualityexcellence.es">www.qualityexcellence.es</a></div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small"><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">El vie., 25 oct. 2019 a las 20:17, juan manuel dias (<<a href="mailto:juamadias@gmail.com">juamadias@gmail.com</a>>) escribió:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">Hola, <div><br></div><div>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. </div><div><br></div><div>Va un ejemplo:<br></div><div><br></div><div><div><img src="cid:ii_k26gdou10" alt="image.png" width="415" height="107"><br></div></div><div>Intenté de varias formas pero no consigo hacerlo.</div><div><br></div><div>Muchas gracias! </div><div><br></div><div>Saludos.</div></div>
_______________________________________________<br>
R-help-es mailing list<br>
<a href="mailto:R-help-es@r-project.org" target="_blank">R-help-es@r-project.org</a><br>
<a href="https://stat.ethz.ch/mailman/listinfo/r-help-es" rel="noreferrer" target="_blank">https://stat.ethz.ch/mailman/listinfo/r-help-es</a><br>
</blockquote></div><br clear="all"><br>-- <br><div dir="ltr" class="gmail_signature"><span style="font-family:verdana,sans-serif">Saludos,</span><br style="font-family:verdana,sans-serif">
<span style="font-family:verdana,sans-serif">Carlos Ortega</span><br style="font-family:verdana,sans-serif">
<span style="font-family:verdana,sans-serif"><a href="http://www.qualityexcellence.es" target="_blank">www.qualityexcellence.es</a></span></div>