1.0

( dat12 <- merge(dat1, dat2, by.y = "Patid")  )
##   Patid AgeGroup Gender VisitNum      Diagnosis
## 1     1        2      M        1       Diabetes
## 2     1        2      M        2       Diabetes
## 3     2        3      F        1      Back Pain
## 4     2        3      F        2        Anxiety
## 5     2        3      F        3        Anxiety
## 6     3        4      F        1 Hyperlipidemia
## 7     3        4      F        2 Osteoarthritis
## 8     3        4      F        3      Pneumonia
## 9     4        1      M        1         Asthma

2.1

( primary_diag <- filter(dat12, VisitNum == 1) %>%

               group_by(Diagnosis) %>%
        
               summarise(
                   count = n()
                  ) )
## Source: local data frame [4 x 2]
## 
##        Diagnosis count
## 1         Asthma     1
## 2      Back Pain     1
## 3       Diabetes     1
## 4 Hyperlipidemia     1

2.2

gender_diag <- distinct(select(dat12,Patid,Diagnosis)) %>%
        
        merge(
                dat1[,-2],
                by.x = "Patid"
       )

table(gender_diag$Gender,gender_diag$Diagnosis)
##    
##     Anxiety Asthma Back Pain Diabetes Hyperlipidemia Osteoarthritis
##   F       1      0         1        0              1              1
##   M       0      1         0        1              0              0
##    
##     Pneumonia
##   F         1
##   M         0

3.0

( group_by(dat12,Patid) %>%
        
        summarise(
                avrg_visits = mean(VisitNum)
        ) )
## Source: local data frame [4 x 2]
## 
##   Patid avrg_visits
## 1     1         1.5
## 2     2         2.0
## 3     3         2.0
## 4     4         1.0

4

counts <- table(primary_diag$Diagnosis)/nrow(primary_diag)
barplot(counts, main="Primary Diagnosis",col = c("red","blue","yellow","green"))