Foro de debate

Ayuda con R

 
Imagen de Sergio García
Ayuda con R
de Sergio García - jueves, 13 de junio de 2019, 18:38
 

Hola, estoy iniciándome en RStudio y tengo que realizar un ejercicio pero ando bastante perdido.

Dispongo de un dataframe de 2 variables: 1 columna de id del paciente y 1 columna de síntomas.

AL hacer un summary me agrupa los síntomas en función del número de veces que se repite. Me gustaría sacar una gráfica de este dato pero no se como hacerlo.

PatientID                Symptom    

 Min.   :   1   Sarcopenia      :4528  

 1st Qu.:2523   Obesity         :3097  

 Median :5035   Muscle_Weakness :1350  

 Mean   :4944   Muscular_Atrophy: 983  

 3rd Qu.:7358   Inflammation    : 815  

 Max.   :9684   Malnutrition    : 753  



                (Other)         :7434  

Alguien podría ayudarme?

Imagen de David Suárez
Re: Ayuda con R
de David Suárez - jueves, 13 de junio de 2019, 23:23
 

Es muy fácil. Sólo selecciona la columna $Symptom de tu dataframe y usa la función plot. Por ejemplo, si tu dataframe es df, puedes hacer la gráfica usando:

plot(df$Symptom)

Por cierto, el tipo de la otra columna está mal, pues te lo está interpretando como numérico y es más bien categórico. Puedes usar la opción 'colClasses' de la función read.table para corregirlo.


Saludos

Imagen de Sergio García
Re: Ayuda con R
de Sergio García - viernes, 14 de junio de 2019, 13:02
 

Muchas gracias David por la respuesta.

Voy a plantearte otra duda a ver si me puedes ayudar. En este mismo Dataframe me aparece la tabla con todos los síntomas de cada paciente separados en diferentes filas.

Quiero aplicar el algoritmo Apriori para sacar reglas de asociación y me gustaría que para hacer la comparativa de confianza y soporte me agrupara los síntomas de cada paciente en una misma fila.

Me podrías ayudar? POr ejemplo que para el paciente 3 me saliesen los mismos sintomas en una misma fila por paciente. No sé si me explico. La tabla tiene más de 18000 entradas



PatientID

Symptom

1

1

Obesity

2

2

Pancreatic_Neoplasms

4

3

Abdominal_Obesity

5

3

Pain

6

3

Chronic_Kidney_Failure

7

4

Ecoli_Infections

8

5

Sarcopenia

9

5

Inflammation

10

5

Obesity


Imagen de Manuel Muñoz Márquez
Re: Ayuda con R
de Manuel Muñoz Márquez - sábado, 15 de junio de 2019, 12:03
 

Hola:

¿Te sirve esto? ¿O necesitas cada síntoma en una columna?
> d <- data.frame(PatientID=c(1, 2, 3, 3, 3, 4, 5, 5, 2, 2, 3), Symptom=c('Obesity', 'Pancreatic_Neoplasms', 'Abdominal_Obesity', 'Pain', 'Chronic_Kidney_Failure', 'Ecoli_Infections', 'Sarcopenia', 'Inflammation', 'Obesity1', 'Obesity', 'Pancreatic_Neoplasms'), stringsAsFactors=FALSE)
> dd <- data.frame(PatientID=1:5, Symptom=unlist(lapply(1:5, FUN=function(i) paste(d[d$PatientID==i,2], collapse=','))))
> dd
  PatientID                                                            Symptom
1         1                                                            Obesity
2         2                              Pancreatic_Neoplasms,Obesity1,Obesity
3         3 Abdominal_Obesity,Pain,Chronic_Kidney_Failure,Pancreatic_Neoplasms
4         4                                                   Ecoli_Infections
5         5                                            Sarcopenia,Inflammation

Un saludo.