Code for Quiz 2 - Question 1

# loading the XML file
tinytex::install_tinytex()

install.packages('Latex')
install.packages('readxl')
install.packages('XML')
install.packages('lubridate')
install.packages('ggplot2')
library(tinytex)
library(tidyverse)
library(readxl)
library(XML)
library(methods)
library(lubridate)
library(ggplot2)


##getting the food name
food <- getNodeSet(doc, "//nutrition/food/name")
food_units <- sapply(food, function(x){as.numeric(xmlAttrs(x)[["units"]])})
food_units

nut_1 <- xmlToDataFrame(getNodeSet(nut, '//nut/food'))
# creating a pointer to the XML file
print(xmlValue(nut$doc$children$nut[["total-fat"]]))
# getting <event...> Nodes from the XML using XPath total-fat, saturated-fat, cholesterol, sodium, carb, fiber, protein
value <- getNodeSet(doc, "//nutrition/daily-values/food")
value <- getNodeSet(doc, "//nutrition/daily-values/food/name/total-fat/saturated-fat/cholesterol/sodium/carb/fiber/protein/vitamins")

#making character variables numeric
nut_dataframe$cholesterol <- as.numeric(as.character(nut_dataframe$cholesterol))
nut_dataframe$carb <- as.numeric(as.character(nut_dataframe$carb))
#pearson correlation
cor(nut_dataframe$cholesterol, nut_dataframe$carb)
##plotting correlation
library(ggplot2)
#changing from character to numeric
dv <- nut_dataframe[c(1:8)]
names(dv)[1] <- "name"
names(dv)[1, 1] <- "daily-value"
dv[is.na(dv)] <- "daily-value"
dv_row <- dv[1, ] #removing single column for transpose
dv_row <- dv_row[c(8, 1, 2, 3, 4, 5, 6, 7)] #reordered variables
dv_row <- t(as.matrix(dv_row))#create transposed daily value variable
dv <- dv[-1, ]
tran_dv <- t(as.matrix(dv))
dv <- (as.data.frame(dv))
dv_merge <- cbind(dv_row, tran_dv)

sapply(dv2, class)
cols.num <- c("Avocado Dip","Bagels, New York Style", "Beef Frankfurter, Quarter Pound", "Chicken Pot Pie", "Cole Slaw", "Eggs", "Hazelnut Spread", "Potato Chips", "Soy Patties, Grilled", "Truffles, Dark Chocolate")
dv3[cols.num] <- sapply(dv3[cols.num], as.numeric)
dv <- dv[c(8, 1, 2, 3, 4, 5, 6, 7)]

##best function/code section for question
options(warn = -1)
nut <- file.choose()
print(names(nut))
doc <- xmlParse(nut)
rootnode <- xmlRoot(doc)
rootsize <- xmlSize(rootnode)
print(rootsize)
print(rootnode[1])
nut_dataframe <- xmlToDataFrame("/Users/kkwiley/Downloads/nutrition.xml")
plot(nut_dataframe)

#changing new table to numeric
dv3[ , i] <- apply(data[ , i], 2, function(x) as.numeric(as.character(x)))
dv1 <- t(as.matrix(dv))
dv3 <- (as.data.frame(dv1))
names(dv3) <- unlist(dv3[1,])
dv3 <- dv3[-1,]
dv3[] <- lapply(dv3, function(x) {
  if(is.factor(x)) as.numeric(as.character(x)) else x
})
names(dv3)[1] <- "daily-value"
final_dv <- t(as.matrix(dv3))
bp <- barplot(final_dv,beside=TRUE,col=1:11, legend.text = TRUE)

Code for Quiz 2 - Question 5

#dose and age code
dose2 <- read_excel(file.choose())
agegroup <- c('A', 'B', 'C', 'D', 'E', 'F')
dose2 <- c(101,96,103,85,78,91,100,95,81,83,79,77,88,84,87,81,91,75,88,84,87,81,91,75,99,93,86,84,77,86)
dose2 <- cbind(agegroup, dose2) 
#performning tests
t.test(dose2, mu=38)
sapply(dose, class)
is.vector(dose)
#test check
cor.test(dose2$value, dose2$age,  method = "pearson")
t.test(dose2$value, mu=38)
new_dose <- dose[,-1]
qplot(value, age, data=dose2, geom="boxplot")
scatter.smooth(x=dose2$value, y=dose2$age, main="Age and Dose")##linear check
is.factor(dose2$age)
#linear regression
linear_mod <- lm(value ~ age, data = dose2)
linear_mod
summary(linear_mod)