### Problem 1
Using the `ChickWeights` dataset, create boxplots showing log10 weights only on days zero (0),10, and 20 of the experiment. The plot should have proper axis labels.
```R
data("ChickWeight")
subset_data <- ChickWeight[ChickWeight$Time %in% c(0, 10, 20), ]
subset_data$log10_weight <- log10(subset_data$weight)
boxplot(log10_weight ~ Time, data = subset_data,
xlab = "Day",
ylab = "Log10 Weight",
main = "Log10 Chick Weights on Days 0, 10, and 20",
col = c('gold'))
```
##### Log10 Chick Weights (Problem 1)

#### Challenge 1a
Have the figure display results for each diet separately.
```R
data("ChickWeight")
subset_data <- ChickWeight[ChickWeight$Time %in% c(0, 10, 20), ]
subset_data$log10_weight <- log10(subset_data$weight)
boxplot(log10_weight ~ interaction(Time, Diet), data = subset_data,
xlab = "Day and Diet (day.diet)",
ylab = "log 10 weight",
main = "Log10 Chick Weights by Diet on Days 0, 10, and 20",
col = c("blue", "green", "red", "gold"))
```
##### Challenge 1a

#### Challenge 1b
With the figure features above, communicate both the individual values and the distribution of those values to a viewer.
### Problem 2
Randomly generate two vectors of 100 values each. Plot them against one another and draw a linear trend line through the group of points.
```R
randomvector1 <- runif(100, min = 0, max = 1000)
randomvector2 <- runif(100, min = 0, max = 500)
plot(randomvector1, randomvector2,
xlab = 'randomly generated vector 1',
ylab = 'randomly generated vector 2',
main = 'Random Vector Scatter Plot'
)
model <- lm(randomvector2 ~ randomvector1)
abline(model, col = 'red', lwd = 2)
```
#### Problem 2

#### Challenge 2a
Find the slope of the line you've drawn above.
You can find the slope of a line using coef():
```R
randomvector1 <- runif(100, min = 0, max = 1000)
randomvector2 <- runif(100, min = 0, max = 500)
plot(randomvector1, randomvector2,
xlab = 'randomly generated vector 1',
ylab = 'randomly generated vector 2',
main = 'Random Vector Scatter Plot'
)
model <- lm(randomvector2 ~ randomvector1)
cf <- coef(model)
print(cf)
abline(model, col = 'red', lwd = 2)
slope <- cf[2]
print(slope)
```
The slope was 0.1298968.
#### Challenge 2b
Add text to the plot, showing the slope.
```R
randomvector1 <- runif(100, min = 0, max = 1000)
randomvector2 <- runif(100, min = 0, max = 500)
plot(randomvector1, randomvector2,
xlab = 'randomly generated vector 1',
ylab = 'randomly generated vector 2',
main = 'Random Vector Scatter Plot'
)
model <- lm(randomvector2 ~ randomvector1)
cf <- coef(model)
abline(model, col = 'red', lwd = 2)
text(300, 145,"slope = 0.1298968")
slope <- cf[2]
print(slope)
```
##### Challenge 2b

#### Challenge 2c
Make that text with the slope's value held in a variable, rather than re-typing the digits by hand. And display only 4 significant digits.
```R
randomvector1 <- runif(100, min = 0, max = 1000)
randomvector2 <- runif(100, min = 0, max = 500)
plot(randomvector1, randomvector2,
xlab = 'randomly generated vector 1',
ylab = 'randomly generated vector 2',
main = 'Random Vector Scatter Plot'
)
model <- lm(randomvector2 ~ randomvector1)
abline(model, col = 'red', lwd = 2)
cf <- coef(model)
slope <- cf[2]
text(300, 145, labels = paste("Slope=", signif(slope,4)))
```
##### Challenge 2c

#### Challenge 2d
Do the same thing using ggplot.
```R
library(ggplot2)
randomvector1 <- runif(100, min = 0, max = 1000)
randomvector2 <- runif(100, min = 0, max = 500)
dataframe <- data.frame(randomvector1, randomvector2)
model <- lm(randomvector2 ~ randomvector1)
cf <- coef(model)
slope <- cf[2]
ggplot(dataframe, aes(x = randomvector1, y = randomvector2)) +
geom_point() +
labs(
x = 'randomly generated vector 1',
y = 'randomly generated vector 2',
title = 'Random Vector Scatter Plot'
) +
geom_smooth(method = 'lm', se = FALSE, color = 'red', lwd = 2) +
annotate('text', x = 300, y = 145, label = paste("Slope = ", signif(slope, 4)))
```
##### Challenge 2d
