[R-es] Duda de como contar casos por Programa.

Francisco Viciana |r@nc|@coj@v|c|@n@ @end|ng |rom junt@de@nd@|uc|@@e@
Lun Oct 28 10:48:03 CET 2019


Otra alternativa de resolución solo con la paquetería estándar:

    rm(list = ls() )
    ## Tenemos un marco de 100 posibles participante
    ## que numeramos con un ID del 1 al 100 (su DNI en el estudio)
    ## Se asigna sexo aleatoriamente con una probablidad de 0.5 para 
cada uno
    marco <- data.frame(ID=1:100,sexo=sample(c(1,6),100,replace = T))

    ## se invita a participar a los 100 miembros del marco en 4 programas:
    programas <-  c('diat','tc','cedecor','cenaresco')
    ##  Modelizamos una  probalidades de participacion independiente en
    ##  cada en cada programa con valores:
    prob.participar <- c(.6,.8,.4,.3)
    names(prob.participar) <- programas

    ## creamos el data.frame "estudios" para  pruebas :
    estudios <- data.frame()
    for (i in programas) {
       participa <- sample(c(TRUE,FALSE),
                    size= length(marco$ID),
                    replace =T,
prob=c(prob.participar[i],1-prob.participar[i]))
       xx <- subset(marco,participa)
       xx$programa <- i
       estudios<- rbind(estudios,xx)
    }

    ## combinamos:
merge(estudios[,c('ID','programa')],estudios[c('ID','programa')], 
by='ID') -> pares
    ## tabulamos:
    with(pares,table(programa.x,programa.y))
    ## Comprobamo que las diagonales corresponde al número de 
participantes en cada programa
    with(estudios,table(programa))

Saludos

On 26/10/19 19:13, Carlos Ortega wrote:
> 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 <http://www.qualityexcellence.es>
>
>
> El vie., 25 oct. 2019 a las 20:17, juan manuel dias 
> (<juamadias using gmail.com <mailto:juamadias using gmail.com>>) 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.png
>     Intenté de varias formas pero no consigo hacerlo.
>
>     Muchas gracias!
>
>     Saludos.
>     _______________________________________________
>     R-help-es mailing list
>     R-help-es using r-project.org <mailto:R-help-es using r-project.org>
>     https://stat.ethz.ch/mailman/listinfo/r-help-es
>
>
>
> -- 
> Saludos,
> Carlos Ortega
> www.qualityexcellence.es <http://www.qualityexcellence.es>
>
> _______________________________________________
> R-help-es mailing list
> R-help-es using r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es

-- 
+--------------------------------------------------------------
| Francisco J. Viciana Fernández
| Dpto. Indicadores Demográficos
| Servicio de Estadísticas Demográficas y Sociales
| Instituto de Estadística y Cartografía de Andalucía
| Leonardo Da Vinci, nº 21. Isla de La Cartuja.
| 41071 SEVILLA.
| franciscoj.viciana using juntadeandalucia.es
+--------------------------------------------------------------


------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <https://stat.ethz.ch/pipermail/r-help-es/attachments/20191028/a9dce604/attachment.html>

------------ próxima parte ------------
A non-text attachment was scrubbed...
Name: image.png
Type: image/png
Size: 6052 bytes
Desc: no disponible
URL: <https://stat.ethz.ch/pipermail/r-help-es/attachments/20191028/a9dce604/attachment.png>

------------ próxima parte ------------
A non-text attachment was scrubbed...
Name: franciscoj_viciana.vcf
Type: text/x-vcard
Size: 4 bytes
Desc: no disponible
URL: <https://stat.ethz.ch/pipermail/r-help-es/attachments/20191028/a9dce604/attachment.vcf>


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