Foro de debate

Ayuda con R

Ayuda con R

de Sergio García -
Número de respuestas: 3

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?

En respuesta a Sergio García

Re: Ayuda con R

de David Suárez -

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

En respuesta a David Suárez

Re: Ayuda con R

de Sergio García -

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


En respuesta a Sergio García

Re: Ayuda con R

de Manuel Muñoz Márquez -

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.