## Heights of fathers and sons

```
father_son <- read_tsv("father_son.tsv")
head(father_son)
```

```
## # A tibble: 6 Ã— 2
## Father Son
## <dbl> <dbl>
## 1 65.0 59.8
## 2 63.3 63.2
## 3 65.0 63.3
## 4 65.8 62.8
## 5 61.1 64.3
## 6 63.0 64.2
```

```
qplot(data = father_son,
x = Father, y = Son, geom = "point", size=I(0.25))
```

## The standard deviation line

```
sd_line <- function(x, y) {
slope <- sd(y)/sd(x)
intercept <- mean(y) - mean(x) * slope
geom_abline(slope = slope, intercept = intercept,
linetype = "dashed", color = "blue", size=0.8)
}
```

```
qplot(data = father_son,
x = Father, y = Son, geom = "point", size=I(0.25)) +
sd_line(father_son$Father, father_son$Son)
```

```
measures <- read_tsv("heights_weights.tsv")
head(measures)
```

```
## # A tibble: 6 Ã— 2
## weight height
## <int> <int>
## 1 169 72
## 2 150 70
## 3 167 67
## 4 167 66
## 5 152 73
## 6 156 70
```

```
p <- qplot(data = measures, x = height, y = weight,
geom = "point", size=I(0.75)) +
sd_line(measures$height, measures$weight)
p
```

```
p +
geom_point(aes(x = mean(height) + sd(height),
y = mean(weight) + sd(weight)),
color = "blue", size = 2) +
geom_point(aes(x = mean(height) - sd(height),
y = mean(weight) - sd(weight)),
color = "blue", size = 2)
```