1 The captopril dataset

The captopril dataset holds information on a small experiment with 15 patients that have increased blood pressure values. More specifically, for each patient we will have four values; one value for systolic blood pressure and one for diastolyic, both before and after treating the patient with a drug named captopril.

2 Import the data

library(tidyverse)
library(readr)
library(ggplot2)

Have a first look at the data

3 Data visualization

Let’s say we now first want to visualize the data. One possibility to easily visualize the four types of blood pressure values is by adopting the gather function from tidyverse. It will reshape the dataframe, such that we have have a single variable type, which points at one of the four blood pressure types, and bp, which points at the actual value for each type for each patient.

captopril %>% 
  gather(type,bp,-id)

3.1 Barplot

Not all visualization types will be equally informative. Let us first make a barplot of the data. A barplot is a plot that you will commonly find in scientific publication The code for generating such a barplot is provided below:

captopril %>% 
  gather(type,bp,-id) %>% 
  group_by(type) %>%
     summarize_at("bp",
               list(mean=~mean(.,na.rm=TRUE),
                    sd=~sd(.,na.rm=TRUE),
                    n=function(x) x%>%is.na%>%`!`%>%sum)) %>%
  mutate(se=sd/sqrt(n)) %>%
  ggplot(aes(x=type,y=mean,fill=type)) + 
    scale_fill_brewer(palette="RdGy") +
    theme_bw() +
    geom_bar(stat="identity") + 
    geom_errorbar(aes(ymin=mean-se, ymax=mean+se),width=.2) +
    ggtitle("Barplot of different blood pressure measures") +
    ylab("blood pressure (mmHg)")

A barplot, however, is not very informative. The height of the bars only provides us with information of the mean blood pressure. However, we don’t see the actual underlying values, so we for instance don’t have any information on the spread of the data. It is usually more informative to represent to underlying values as raw as possible. Note that it is possible to add the raw data on the barplot, but we still would not see any measures of the spread, such as the interquartile range.

Based on this critisism, can you think of a better visualization strategy for the captopril data?

Add your proposed visualization strategy here

4 Descriptive statistics

  • Generate a code chunk to calculate useful summary statistics for the capropril data
LS0tCnRpdGxlOiAiRXhlcmNpc2UgNC4zOiBFeHBsb3JpbmcgdGhlIGNhcHRvcHJpbCBkYXRhc2V0IgphdXRob3I6ICJMaWV2ZW4gQ2xlbWVudCBhbmQgSmVyb2VuIEdpbGlzIgpkYXRlOiAic3RhdE9taWNzLCBHaGVudCBVbml2ZXJzaXR5IChodHRwczovL3N0YXRvbWljcy5naXRodWIuaW8pIgpvdXRwdXQ6CiAgICBodG1sX2RvY3VtZW50OgogICAgICBjb2RlX2Rvd25sb2FkOiB0cnVlICAgIAogICAgICB0aGVtZTogY29zbW8KICAgICAgdG9jOiB0cnVlCiAgICAgIHRvY19mbG9hdDogdHJ1ZQogICAgICBoaWdobGlnaHQ6IHRhbmdvCiAgICAgIG51bWJlcl9zZWN0aW9uczogdHJ1ZQotLS0KCiMgVGhlIGNhcHRvcHJpbCBkYXRhc2V0CgpUaGUgYGNhcHRvcHJpbCBkYXRhc2V0YCBob2xkcyBpbmZvcm1hdGlvbiBvbiBhIHNtYWxsIGV4cGVyaW1lbnQgd2l0aAoxNSBwYXRpZW50cyB0aGF0IGhhdmUgaW5jcmVhc2VkIGJsb29kIHByZXNzdXJlIHZhbHVlcy4gCk1vcmUgc3BlY2lmaWNhbGx5LCBmb3IgZWFjaCBwYXRpZW50IHdlIHdpbGwgaGF2ZSBmb3VyIHZhbHVlczsKb25lIHZhbHVlIGZvciBzeXN0b2xpYyBibG9vZCBwcmVzc3VyZSBhbmQgb25lIGZvciBkaWFzdG9seWljLApib3RoIGJlZm9yZSBhbmQgYWZ0ZXIgdHJlYXRpbmcgdGhlIHBhdGllbnQgd2l0aCBhIGRydWcgbmFtZWQgY2FwdG9wcmlsLgoKIyBJbXBvcnQgdGhlIGRhdGEKCmBgYHtyLCBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFfQpsaWJyYXJ5KHRpZHl2ZXJzZSkKbGlicmFyeShyZWFkcikKbGlicmFyeShnZ3Bsb3QyKQpgYGAKCmBgYHtyfQoKYGBgCgpIYXZlIGEgZmlyc3QgbG9vayBhdCB0aGUgZGF0YQoKYGBge3J9CgpgYGAKCiMgRGF0YSB2aXN1YWxpemF0aW9uCgpMZXQncyBzYXkgd2Ugbm93IGZpcnN0IHdhbnQgdG8gdmlzdWFsaXplIHRoZSBkYXRhLiAKT25lIHBvc3NpYmlsaXR5IHRvIGVhc2lseSB2aXN1YWxpemUgdGhlIGZvdXIgdHlwZXMKb2YgYmxvb2QgcHJlc3N1cmUgdmFsdWVzIGlzIGJ5IGFkb3B0aW5nIHRoZSBgZ2F0aGVyYApmdW5jdGlvbiBmcm9tIHRpZHl2ZXJzZS4gSXQgd2lsbCByZXNoYXBlIHRoZSBkYXRhZnJhbWUsCnN1Y2ggdGhhdCB3ZSBoYXZlIGhhdmUgYSBzaW5nbGUgdmFyaWFibGUgYHR5cGVgLCB3aGljaCAKcG9pbnRzIGF0IG9uZSBvZiB0aGUgZm91ciBibG9vZCBwcmVzc3VyZSB0eXBlcywgYW5kIGBicGAsCndoaWNoIHBvaW50cyBhdCB0aGUgYWN0dWFsIHZhbHVlIGZvciBlYWNoIHR5cGUgCmZvciBlYWNoIHBhdGllbnQuCgpgYGB7ciwgZXZhbD1GQUxTRX0KY2FwdG9wcmlsICU+JSAKICBnYXRoZXIodHlwZSxicCwtaWQpCmBgYAoKIyMgQmFycGxvdAoKTm90IGFsbCB2aXN1YWxpemF0aW9uIHR5cGVzIHdpbGwgYmUgZXF1YWxseSBpbmZvcm1hdGl2ZS4KTGV0IHVzIGZpcnN0IG1ha2UgYSBiYXJwbG90IG9mIHRoZSBkYXRhLiBBIGJhcnBsb3QgaXMgYSBwbG90IHRoYXQgeW91IHdpbGwgCmNvbW1vbmx5IGZpbmQgaW4gc2NpZW50aWZpYyBwdWJsaWNhdGlvbiBUaGUgY29kZSBmb3IgZ2VuZXJhdGluZyBzdWNoIGEgYmFycGxvdCAKaXMgcHJvdmlkZWQgYmVsb3c6CgpgYGB7ciwgZXZhbD1GQUxTRX0KY2FwdG9wcmlsICU+JSAKICBnYXRoZXIodHlwZSxicCwtaWQpICU+JSAKICBncm91cF9ieSh0eXBlKSAlPiUKICAgICBzdW1tYXJpemVfYXQoImJwIiwKICAgICAgICAgICAgICAgbGlzdChtZWFuPX5tZWFuKC4sbmEucm09VFJVRSksCiAgICAgICAgICAgICAgICAgICAgc2Q9fnNkKC4sbmEucm09VFJVRSksCiAgICAgICAgICAgICAgICAgICAgbj1mdW5jdGlvbih4KSB4JT4laXMubmElPiVgIWAlPiVzdW0pKSAlPiUKICBtdXRhdGUoc2U9c2Qvc3FydChuKSkgJT4lCiAgZ2dwbG90KGFlcyh4PXR5cGUseT1tZWFuLGZpbGw9dHlwZSkpICsgCiAgICBzY2FsZV9maWxsX2JyZXdlcihwYWxldHRlPSJSZEd5IikgKwogICAgdGhlbWVfYncoKSArCiAgICBnZW9tX2JhcihzdGF0PSJpZGVudGl0eSIpICsgCiAgICBnZW9tX2Vycm9yYmFyKGFlcyh5bWluPW1lYW4tc2UsIHltYXg9bWVhbitzZSksd2lkdGg9LjIpICsKICAgIGdndGl0bGUoIkJhcnBsb3Qgb2YgZGlmZmVyZW50IGJsb29kIHByZXNzdXJlIG1lYXN1cmVzIikgKwogICAgeWxhYigiYmxvb2QgcHJlc3N1cmUgKG1tSGcpIikKYGBgCgpBIGJhcnBsb3QsIGhvd2V2ZXIsIGlzIG5vdCB2ZXJ5IGluZm9ybWF0aXZlLiBUaGUgaGVpZ2h0IG9mIHRoZQpiYXJzIG9ubHkgcHJvdmlkZXMgdXMgd2l0aCBpbmZvcm1hdGlvbiBvZiB0aGUgbWVhbiBibG9vZCBwcmVzc3VyZS4KSG93ZXZlciwgd2UgZG9uJ3Qgc2VlIHRoZSBhY3R1YWwgdW5kZXJseWluZyB2YWx1ZXMsIHNvIHdlIGZvcgppbnN0YW5jZSBkb24ndCBoYXZlIGFueSBpbmZvcm1hdGlvbiBvbiB0aGUgc3ByZWFkIG9mIHRoZSBkYXRhLgpJdCBpcyB1c3VhbGx5IG1vcmUgaW5mb3JtYXRpdmUgdG8gcmVwcmVzZW50IHRvIHVuZGVybHlpbmcgCnZhbHVlcyBhcyBfcmF3XyBhcyBwb3NzaWJsZS4gTm90ZSB0aGF0IGl0IGlzIHBvc3NpYmxlIHRvIGFkZCB0aGUKcmF3IGRhdGEgb24gdGhlIGJhcnBsb3QsIGJ1dCB3ZSBzdGlsbCB3b3VsZCBub3Qgc2VlIGFueSBtZWFzdXJlcwpvZiB0aGUgc3ByZWFkLCBzdWNoIGFzIHRoZSBpbnRlcnF1YXJ0aWxlIHJhbmdlLgoKKipCYXNlZCBvbiB0aGlzIGNyaXRpc2lzbSwgY2FuIHlvdSB0aGluayBvZiBhIGJldHRlcioqCioqdmlzdWFsaXphdGlvbiBzdHJhdGVneSBmb3IgdGhlIGNhcHRvcHJpbCBkYXRhPyoqCgoqKkFkZCB5b3VyIHByb3Bvc2VkIHZpc3VhbGl6YXRpb24gc3RyYXRlZ3kgaGVyZSoqCgpgYGB7ciwgZXZhbD1GQUxTRX0KCmBgYAoKIyBEZXNjcmlwdGl2ZSBzdGF0aXN0aWNzCgotIEdlbmVyYXRlIGEgY29kZSBjaHVuayB0byBjYWxjdWxhdGUgdXNlZnVsIHN1bW1hcnkgc3RhdGlzdGljcyBmb3IgCnRoZSBjYXByb3ByaWwgZGF0YQoKCgoK