Question 1

Let \(f(x) = \frac{\ln(x)}{x}\). What is \(f'(x)\) for \(x > 0\)?

# install.packages("Deriv")
library(Deriv)
f <- function(x) {
  log(x) / x
}
f_prime <- Deriv(f)
f_prime
## function (x) 
## (1 - log(x))/x^2

Question 2

You are given some product and price data, as defined below. Do the following parts.

First, I will define our data frame.

q2_data <- data.frame(Product = c("Pen","Pencil","Notebook","Ruler","Glue","Eraser","Scissors","Sharpener"),
                      Price = c(0.85,0.15,0.96,0.58,0.75,0.40,0.98,0.69))
q2_data
##     Product Price
## 1       Pen  0.85
## 2    Pencil  0.15
## 3  Notebook  0.96
## 4     Ruler  0.58
## 5      Glue  0.75
## 6    Eraser  0.40
## 7  Scissors  0.98
## 8 Sharpener  0.69

A. Order the data in ascending order from least price to greatest price.

# install.packages("tidyverse")
library(tidyverse)
## Warning: package 'lubridate' was built under R version 4.5.2
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr     1.1.4     ✔ readr     2.1.5
## ✔ forcats   1.0.1     ✔ stringr   1.5.2
## ✔ ggplot2   4.0.0     ✔ tibble    3.3.0
## ✔ lubridate 1.9.4     ✔ tidyr     1.3.1
## ✔ purrr     1.1.0     
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
q2_data %>%
  arrange(Price) # ascending order
##     Product Price
## 1    Pencil  0.15
## 2    Eraser  0.40
## 3     Ruler  0.58
## 4 Sharpener  0.69
## 5      Glue  0.75
## 6       Pen  0.85
## 7  Notebook  0.96
## 8  Scissors  0.98

B. Order the data in descending order from greatest price to least price.

# install.packages("tidyverse")
library(tidyverse)
q2_data %>%
  arrange(desc(Price)) # ascending order: arrange(), descending order: desc()
##     Product Price
## 1  Scissors  0.98
## 2  Notebook  0.96
## 3       Pen  0.85
## 4      Glue  0.75
## 5 Sharpener  0.69
## 6     Ruler  0.58
## 7    Eraser  0.40
## 8    Pencil  0.15

C. Determine how many objects contain the letter “s”.

# install.packages(c("stringr","tidyverse"))
library(stringr)
library(tidyverse)
answer <- q2_data %>%
  mutate(has_s = str_detect(Product,pattern = regex("s",ignore_case = T))) %>%
  summarise(Total = sum(has_s)) %>%
  pull(Total)
cat("There are",answer,"objects that contain the letter 's'.","\n")
## There are 3 objects that contain the letter 's'.

Question 3

Write 930 in words.

# install.packages("english")
library(english)
## Warning: package 'english' was built under R version 4.5.2
words(930)
## [1] "nine hundred thirty"

Question 4

Convert \(157.5^{\circ}\) into radians.

# install.packages("pracma")
library(pracma)
## 
## Attaching package: 'pracma'
## The following object is masked from 'package:purrr':
## 
##     cross
result <- deg2rad(deg = 157.5)
cat("157.5 degrees =",result,"radians","\n")
## 157.5 degrees = 2.748894 radians

Question 5

Graph and solve the following definite integral.

\[\int_{-3}^{3} x^2 + x + 1 dx\]

# install.packages("tidyverse")
library(tidyverse)
g <- function(x) {
  x^2 + x + 1
}
value <- integrate(g,lower = -3,upper = 3)$value
x_values <- seq(-4,4,length.out = 500)
y_values <- g(x_values)
q5_data <- data.frame(x = x_values,y = y_values)
ggplot(q5_data,aes(x = x,y = y)) +
  geom_line(col = "black",lwd = 1.25) +
  geom_ribbon(data = subset(q5_data,x >= -3 & x <= 3),
              aes(ymin = 0,ymax = y),
              fill = "blue") +
  labs(title = "Graph of g(x) = x^2 + x + 1",
       caption = paste("Answer:",value),
       x = "x",
       y = "y") +
  theme_gray(base_size = 14)