setwd("~/Desktop/")
status <- rep(c("Dead","Survived"),4)
trt <- rep(c(rep("Tolbutamide",2),rep("Placebo",2)),2)
age <- c(rep("<55",4), rep("55+",4))
freq <- c(8,98,5,115,22,76, 16, 69)
df <- data.frame(Status=status, Treatment=trt, Agegrp =age, Freq=freq)
df
## Status Treatment Agegrp Freq
## 1 Dead Tolbutamide <55 8
## 2 Survived Tolbutamide <55 98
## 3 Dead Placebo <55 5
## 4 Survived Placebo <55 115
## 5 Dead Tolbutamide 55+ 22
## 6 Survived Tolbutamide 55+ 76
## 7 Dead Placebo 55+ 16
## 8 Survived Placebo 55+ 69
- Select 3 to 5 subjects (classmates, friends, or family members) and collect data on first name, last name, affiliation, two email addresses, and today’s date. Using a text editor, create a data frame with this data.
fn <- c("Mike", "Joey", "Chad")
ln <- c("Kale", "Soros", "Yee")
afl <- rep("Friend",3)
email1 <- c("palmtree@yahoo.com", "earhe@hotmail.com", "rqej92@berkeley.edu")
email2 <- c("mk@gmail.com","js@gmail.com","cyee@gmail.com")
date <- rep("5 November 2016",3)
df2 <- data.frame(Firstname =fn, Lastname=ln, Affiliation=afl, Email1=email1, Email2=email2, Today=date)
df2
## Firstname Lastname Affiliation Email1 Email2
## 1 Mike Kale Friend palmtree@yahoo.com mk@gmail.com
## 2 Joey Soros Friend earhe@hotmail.com js@gmail.com
## 3 Chad Yee Friend rqej92@berkeley.edu cyee@gmail.com
## Today
## 1 5 November 2016
## 2 5 November 2016
## 3 5 November 2016
adat <- read.table("http://www.medepi.net/data/aids.txt", header = TRUE,
sep = "", na.strings = ".")
head(adat)
## cases year
## 1 NA 1980
## 2 NA 1981
## 3 NA 1982
## 4 NA 1983
## 5 4445 1984
## 6 8249 1985
plot(adat$year, adat$cases, type = "l", xlab = "Year", lwd = 2, ylab = "Cases",
main = "Reported AIDS Cases in United States, 1980--2003")

measles <- read.table("http://www.medepi.net/data/measles.txt", header = TRUE,
sep = "", na.strings = ".")
plot(measles$year, measles$cases, type = "l", lwd = 2, xlab = "Year",
ylab="Number of Cases", main = "Time Series: Measles Cases")

plot(measles$year, log(measles$cases), type = "l", lwd = 2, xlab = "Year",
log = "y", ylab = "Log Cases", main = "Time Series: Log(Measles Cases)")

hepb <- read.table("http://www.medepi.net/data/hepb.txt", header = TRUE,
sep = "", na.strings = ".")
aids <- read.table("http://www.medepi.net/data/aids.txt", header = TRUE,
sep = "", na.strings = ".")
matplot(hepb$year, cbind(hepb$cases,aids$cases),
type = "l", lwd = 2, xlab = "Year", ylab = "Cases",
main = "Reported cases of Hepatitis B and AIDS, United States, 1980--2003")
legend(1980, 100000, legend = c("Hepatitis B", "AIDS"),
lwd = 2, lty = 1:2, col = 1:2)

edat <- read.table("http://www.medepi.net/data/evans.txt", header = TRUE, sep = "")
str(edat)
## 'data.frame': 609 obs. of 12 variables:
## $ id : int 21 31 51 71 74 91 111 131 141 191 ...
## $ chd: int 0 0 1 0 0 0 1 0 0 0 ...
## $ cat: int 0 0 1 1 0 0 0 0 0 0 ...
## $ age: int 56 43 56 64 49 46 52 63 42 55 ...
## $ chl: int 270 159 201 179 243 252 179 217 176 250 ...
## $ smk: int 0 1 1 1 1 1 1 0 1 0 ...
## $ ecg: int 0 0 1 0 0 0 1 0 0 1 ...
## $ dbp: int 80 74 112 100 82 88 80 92 76 114 ...
## $ sbp: int 138 128 164 200 145 142 128 135 114 182 ...
## $ hpt: int 0 0 1 1 0 0 0 0 0 1 ...
## $ ch : int 0 0 1 1 0 0 0 0 0 0 ...
## $ cc : int 0 0 201 179 0 0 0 0 0 0 ...
xtabs(~chd, data = edat)
## chd
## 0 1
## 538 71
edat$chd2 <- factor(edat$chd, levels = 0:1, labels = c("No", "Yes"))
xtabs(~chd2, data = edat) # test
## chd2
## No Yes
## 538 71
xtabs(~cat, data = edat)
## cat
## 0 1
## 487 122
edat$cat2 <- factor(edat$cat, levels = 0:1, labels = c("Normal", "High"))
xtabs(~cat2, data = edat) # test
## cat2
## Normal High
## 487 122
xtabs(~smk, data = edat)
## smk
## 0 1
## 222 387
edat$smk2 <- factor(edat$smk, levels = 0:1, labels = c("Never", "Ever"))
xtabs(~smk2, data = edat) # test
## smk2
## Never Ever
## 222 387
xtabs(~ecg, data = edat)
## ecg
## 0 1
## 443 166
edat$ecg2 <- factor(edat$ecg, levels = 0:1, labels = c("Normal", "Abnormal"))
xtabs(~ecg2, data = edat) # test
## ecg2
## Normal Abnormal
## 443 166
xtabs(~hpt, data = edat)
## hpt
## 0 1
## 354 255
edat$hpt2 <- factor(edat$hpt, levels = 0:1, labels = c("No", "Yes"))
xtabs(~hpt2, data = edat) # test
## hpt2
## No Yes
## 354 255
#### (2)
quantile(edat$age)
## 0% 25% 50% 75% 100%
## 40 46 52 60 76
edat$age4 <- cut(edat$age, quantile(edat$age), right = FALSE, include.lowest = TRUE)
xtabs(~age4, data = edat) # test
## age4
## [40,46) [46,52) [52,60) [60,76]
## 134 158 158 159
#### (3)
hptnew <- rep(NA, nrow(edat))
normal <- edat$sbp < 120 & edat$dbp < 80
hptnew[normal] <- 1
prehyp <- (edat$sbp >= 120 & edat$sbp < 140) | (edat$dbp >= 80 & edat$dbp < 90)
hptnew[prehyp] <- 2
stage1 <- (edat$sbp >= 140 & edat$sbp < 160) | (edat$dbp >= 90 & edat$dbp < 100)
hptnew[stage1] <- 3
stage2 <- edat$sbp >= 160 | edat$dbp >= 100
hptnew[stage2] <- 4
edat$hpt4 <- factor(hptnew, levels = 1:4,
labels=c("Normal", "PreHTN", "HTN.Stage1", "HTN.Stage2"))
xtabs(~hpt4, data = edat) # test
## hpt4
## Normal PreHTN HTN.Stage1 HTN.Stage2
## 56 165 177 211
#### (4)
xtabs(~hpt2 + hpt4, data = edat)
## hpt4
## hpt2 Normal PreHTN HTN.Stage1 HTN.Stage2
## No 56 165 133 0
## Yes 0 0 44 211
wdat <- read.table("http://www.medepi.net/data/wnv/wnv2004raw.txt",
header = TRUE, sep = ",", as.is = TRUE, na.strings = c(".","Unknown"))
str(wdat)
## 'data.frame': 779 obs. of 8 variables:
## $ id : int 1 2 3 4 5 6 7 8 9 10 ...
## $ county : chr "San Bernardino" "San Bernardino" "San Bernardino" "San Bernardino" ...
## $ age : int 40 64 19 12 12 17 61 74 71 26 ...
## $ sex : chr "F" "F" "M" "M" ...
## $ syndrome : chr "WNF" "WNF" "WNF" "WNF" ...
## $ date.onset : chr "05/19/2004" "05/22/2004" "05/22/2004" "05/16/2004" ...
## $ date.tested: chr "06/02/2004" "06/16/2004" "06/16/2004" "06/16/2004" ...
## $ death : chr "No" "No" "No" "No" ...
wdat$date.onset2 <- as.Date(wdat$date.onset, format = "%m/%d/%Y")
wdat$date.tested2 <- as.Date(wdat$date.tested, format = "%m/%d/%Y")
write.table(wdat, "wnvdat.txt",
sep = ",", row.names = FALSE)
wdat.test <- read.csv("wnvdat.txt")
head(wdat.test)
## id county age sex syndrome date.onset date.tested death
## 1 1 San Bernardino 40 F WNF 05/19/2004 06/02/2004 No
## 2 2 San Bernardino 64 F WNF 05/22/2004 06/16/2004 No
## 3 3 San Bernardino 19 M WNF 05/22/2004 06/16/2004 No
## 4 4 San Bernardino 12 M WNF 05/16/2004 06/16/2004 No
## 5 5 San Bernardino 12 M WNF 05/14/2004 06/16/2004 No
## 6 6 San Bernardino 17 M WNF 06/07/2004 06/17/2004 No
## date.onset2 date.tested2
## 1 2004-05-19 2004-06-02
## 2 2004-05-22 2004-06-16
## 3 2004-05-22 2004-06-16
## 4 2004-05-16 2004-06-16
## 5 2004-05-14 2004-06-16
## 6 2004-06-07 2004-06-17
str(wdat.test)
## 'data.frame': 779 obs. of 10 variables:
## $ id : int 1 2 3 4 5 6 7 8 9 10 ...
## $ county : Factor w/ 23 levels "Butte","Fresno",..: 14 14 14 14 14 14 14 14 8 12 ...
## $ age : int 40 64 19 12 12 17 61 74 71 26 ...
## $ sex : Factor w/ 2 levels "F","M": 1 1 2 2 2 2 2 1 2 2 ...
## $ syndrome : Factor w/ 2 levels "WNF","WNND": 1 1 1 1 1 1 2 2 1 2 ...
## $ date.onset : Factor w/ 130 levels "02/02/2005","05/14/2004",..: 4 5 5 3 2 6 8 11 8 10 ...
## $ date.tested : Factor w/ 104 levels "01/21/2005","02/04/2005",..: 4 5 5 5 5 6 7 8 9 9 ...
## $ death : Factor w/ 2 levels "No","Yes": 1 1 1 1 1 1 1 1 1 1 ...
## $ date.onset2 : Factor w/ 130 levels "2004-05-14","2004-05-16",..: 3 4 4 2 1 5 7 10 7 9 ...
## $ date.tested2: Factor w/ 104 levels "2004-06-02","2004-06-16",..: 1 2 2 2 2 3 4 5 6 6 ...
odat <- read.table("http://www.medepi.net/data/oswego/oswego.txt", sep = "",
header = TRUE, na.strings = ".")
str(odat)
## 'data.frame': 75 obs. of 21 variables:
## $ id : int 2 3 4 6 7 8 9 10 14 16 ...
## $ age : int 52 65 59 63 70 40 15 33 10 32 ...
## $ sex : Factor w/ 2 levels "F","M": 1 2 1 1 2 1 1 1 2 1 ...
## $ meal.time : Factor w/ 7 levels "10:00 PM","11:00 AM",..: 6 3 3 5 5 5 1 4 5 7 ...
## $ ill : Factor w/ 2 levels "N","Y": 2 2 2 2 2 2 2 2 2 2 ...
## $ onset.date : Factor w/ 3 levels "4/18","4/19",..: 2 2 2 1 1 2 2 1 2 2 ...
## $ onset.time : Factor w/ 18 levels "1:00 AM","10:00 PM",..: 9 9 9 5 5 10 1 6 10 4 ...
## $ baked.ham : Factor w/ 2 levels "N","Y": 2 2 2 2 2 1 1 2 1 2 ...
## $ spinach : Factor w/ 2 levels "N","Y": 2 2 2 2 2 1 1 2 1 2 ...
## $ mashed.potato : Factor w/ 3 levels "N","NA","Y": 3 3 1 1 3 1 1 3 1 1 ...
## $ cabbage.salad : Factor w/ 2 levels "N","Y": 1 2 1 2 1 1 1 1 1 1 ...
## $ jello : Factor w/ 2 levels "N","Y": 1 1 1 2 2 1 1 1 1 1 ...
## $ rolls : Factor w/ 2 levels "N","Y": 2 1 1 1 2 1 1 2 1 2 ...
## $ brown.bread : Factor w/ 2 levels "N","Y": 1 1 1 1 2 1 1 2 1 1 ...
## $ milk : Factor w/ 2 levels "N","Y": 1 1 1 1 1 1 1 1 1 1 ...
## $ coffee : Factor w/ 2 levels "N","Y": 2 2 2 1 2 1 1 1 1 2 ...
## $ water : Factor w/ 2 levels "N","Y": 1 1 1 2 2 1 1 2 1 1 ...
## $ cakes : Factor w/ 2 levels "N","Y": 1 1 2 1 1 1 2 1 1 2 ...
## $ vanilla.ice.cream : Factor w/ 2 levels "N","Y": 2 2 2 2 2 2 1 2 2 2 ...
## $ chocolate.ice.cream: Factor w/ 3 levels "N","NA","Y": 1 3 3 1 1 3 3 3 3 3 ...
## $ fruit.salad : Factor w/ 2 levels "N","Y": 1 1 1 1 1 1 1 1 1 1 ...
head(odat)
## id age sex meal.time ill onset.date onset.time baked.ham spinach
## 1 2 52 F 8:00 PM Y 4/19 12:30 AM Y Y
## 2 3 65 M 6:30 PM Y 4/19 12:30 AM Y Y
## 3 4 59 F 6:30 PM Y 4/19 12:30 AM Y Y
## 4 6 63 F 7:30 PM Y 4/18 10:30 PM Y Y
## 5 7 70 M 7:30 PM Y 4/18 10:30 PM Y Y
## 6 8 40 F 7:30 PM Y 4/19 2:00 AM N N
## mashed.potato cabbage.salad jello rolls brown.bread milk coffee water
## 1 Y N N Y N N Y N
## 2 Y Y N N N N Y N
## 3 N N N N N N Y N
## 4 N Y Y N N N N Y
## 5 Y N Y Y Y N Y Y
## 6 N N N N N N N N
## cakes vanilla.ice.cream chocolate.ice.cream fruit.salad
## 1 N Y N N
## 2 N Y Y N
## 3 Y Y Y N
## 4 N Y N N
## 5 N Y N N
## 6 N Y Y N
mdt <- paste("4/18/1940", odat$meal.time) # create vector w/ meal date and time
meal.dt <- strptime(mdt, "%m/%d/%Y %I:%M %p") # convert to standard date and time
#### create vector with onset date and time
odt <- paste(paste(odat$onset.date,"/1940",sep = ""), odat$onset.time)
onset.dt <- strptime(odt, "%m/%d/%Y %I:%M %p") # convert into std date & time
hist(onset.dt, breaks = 30, freq = TRUE)

#### Generate logical vectors and identify 'which' position
min.obs.pos <- which(onset.dt == min(onset.dt, na.rm = TRUE))
min.obs.pos
## [1] 33
max.obs.pos <- which(onset.dt == max(onset.dt, na.rm = TRUE))
max.obs.pos
## [1] 10
#### index data frame to display outliers
odat[min.obs.pos, ]
## id age sex meal.time ill onset.date onset.time baked.ham spinach
## 33 52 8 M 11:00 AM Y 4/18 3:00 PM N N
## mashed.potato cabbage.salad jello rolls brown.bread milk coffee water
## 33 N N N N N N N N
## cakes vanilla.ice.cream chocolate.ice.cream fruit.salad
## 33 N Y Y N
odat[max.obs.pos, ]
## id age sex meal.time ill onset.date onset.time baked.ham spinach
## 10 16 32 F NA Y 4/19 10:30 AM Y Y
## mashed.potato cabbage.salad jello rolls brown.bread milk coffee water
## 10 N N N Y N N Y N
## cakes vanilla.ice.cream chocolate.ice.cream fruit.salad
## 10 Y Y Y N
onset.ct <- as.POSIXct(onset.dt)
odat2 <- odat[order(odat$ill, onset.ct), ]; odat2
## id age sex meal.time ill onset.date onset.time baked.ham spinach
## 47 1 11 M NA N NA NA N N
## 48 5 13 F NA N NA NA N N
## 49 11 65 M NA N NA NA Y Y
## 50 12 38 F NA N NA NA Y Y
## 51 13 62 F NA N NA NA Y Y
## 52 15 25 M NA N NA NA Y Y
## 53 19 11 M NA N NA NA Y Y
## 54 23 64 M NA N NA NA N N
## 55 25 65 F NA N NA NA Y Y
## 56 28 62 M NA N NA NA Y Y
## 57 30 17 M 10:00 PM N NA NA N N
## 58 34 40 M NA N NA NA Y Y
## 59 35 35 F NA N NA NA Y Y
## 60 37 36 M NA N NA NA Y N
## 61 41 54 F NA N NA NA Y Y
## 62 45 20 M 10:00 PM N NA NA N N
## 63 46 17 M NA N NA NA Y Y
## 64 50 9 F NA N NA NA N N
## 65 51 50 M NA N NA NA Y Y
## 66 53 35 F NA N NA NA N N
## 67 56 11 F NA N NA NA N N
## 68 61 37 M NA N NA NA N N
## 69 62 24 F NA N NA NA Y Y
## 70 63 69 F NA N NA NA N Y
## 71 64 7 M NA N NA NA Y Y
## 72 67 11 F 7:30 PM N NA NA Y Y
## 73 68 17 M 7:30 PM N NA NA Y Y
## 74 69 36 F NA N NA NA N N
## 75 73 14 F 10:00 PM N NA NA N N
## 33 52 8 M 11:00 AM Y 4/18 3:00 PM N N
## 20 31 35 M NA Y 4/18 9:00 PM Y Y
## 23 36 35 F NA Y 4/18 9:15 PM Y Y
## 26 40 68 M NA Y 4/18 9:30 PM Y N
## 29 44 58 M NA Y 4/18 9:30 PM Y Y
## 16 24 3 M NA Y 4/18 9:45 PM N Y
## 17 26 59 F NA Y 4/18 9:45 PM N Y
## 13 20 33 F NA Y 4/18 10:00 PM Y Y
## 12 18 36 M NA Y 4/18 10:15 PM Y Y
## 4 6 63 F 7:30 PM Y 4/18 10:30 PM Y Y
## 5 7 70 M 7:30 PM Y 4/18 10:30 PM Y Y
## 32 49 52 F NA Y 4/18 10:30 PM Y Y
## 36 57 74 M NA Y 4/18 10:30 PM Y Y
## 8 10 33 F 7:00 PM Y 4/18 11:00 PM Y Y
## 15 22 7 M NA Y 4/18 11:00 PM Y Y
## 19 29 37 F NA Y 4/18 11:00 PM Y Y
## 35 55 25 M NA Y 4/18 11:00 PM Y N
## 46 75 45 F NA Y 4/18 11:00 PM Y Y
## 24 38 57 F NA Y 4/18 11:30 PM Y Y
## 39 60 53 F 7:30 PM Y 4/18 11:30 PM Y Y
## 34 54 48 F NA Y 4/19 12:00 AM Y Y
## 44 72 18 F 7:30 PM Y 4/19 12:00 AM Y Y
## 1 2 52 F 8:00 PM Y 4/19 12:30 AM Y Y
## 2 3 65 M 6:30 PM Y 4/19 12:30 AM Y Y
## 3 4 59 F 6:30 PM Y 4/19 12:30 AM Y Y
## 11 17 62 F NA Y 4/19 12:30 AM N N
## 30 47 62 F NA Y 4/19 12:30 AM Y Y
## 41 66 8 F NA Y 4/19 12:30 AM Y N
## 42 70 21 F NA Y 4/19 12:30 AM Y N
## 7 9 15 F 10:00 PM Y 4/19 1:00 AM N N
## 14 21 13 F 10:00 PM Y 4/19 1:00 AM N N
## 18 27 15 F 10:00 PM Y 4/19 1:00 AM N N
## 21 32 15 M 10:00 PM Y 4/19 1:00 AM N N
## 22 33 50 F 10:00 PM Y 4/19 1:00 AM N N
## 25 39 16 F 10:00 PM Y 4/19 1:00 AM N N
## 31 48 20 F 7:00 PM Y 4/19 1:00 AM N N
## 37 58 12 F 10:00 PM Y 4/19 1:00 AM N N
## 40 65 17 F 10:00 PM Y 4/19 1:00 AM N N
## 43 71 60 M 7:30 PM Y 4/19 1:00 AM N N
## 6 8 40 F 7:30 PM Y 4/19 2:00 AM N N
## 9 14 10 M 7:30 PM Y 4/19 2:00 AM N N
## 28 43 72 F NA Y 4/19 2:00 AM Y Y
## 45 74 52 M NA Y 4/19 2:15 AM Y N
## 27 42 77 M NA Y 4/19 2:30 AM N N
## 38 59 44 F 7:30 PM Y 4/19 2:30 AM Y Y
## 10 16 32 F NA Y 4/19 10:30 AM Y Y
## mashed.potato cabbage.salad jello rolls brown.bread milk coffee water
## 47 N N N N N N N N
## 48 N N N N N N N N
## 49 Y N Y Y N N N N
## 50 Y N N Y N N Y N
## 51 N Y Y Y Y N N Y
## 52 Y Y Y Y Y Y Y Y
## 53 NA Y N Y N N N Y
## 54 N N N N N N N N
## 55 Y Y Y N Y N Y N
## 56 N Y N Y Y N Y Y
## 57 N N N N N N N N
## 58 N N N Y Y N Y Y
## 59 Y N N Y Y N Y Y
## 60 Y Y N Y Y N Y N
## 61 Y N N Y N N Y N
## 62 N N N N N N N N
## 63 Y N N Y N N N Y
## 64 N N N N N N N N
## 65 Y Y Y Y Y Y Y Y
## 66 N N N N N N N N
## 67 N N N N N N N N
## 68 N N N N N N N N
## 69 Y N N Y N N Y N
## 70 Y N Y N Y N N Y
## 71 Y Y Y Y N N N Y
## 72 Y Y N Y N N Y Y
## 73 Y Y N Y N N Y N
## 74 N N N N N N N N
## 75 N N N N N N N N
## 33 N N N N N N N N
## 20 Y N Y Y Y N Y N
## 23 Y Y N Y Y N Y N
## 26 Y Y N N Y N Y N
## 29 Y N N N Y Y Y N
## 16 Y N N Y N N N Y
## 17 Y Y N Y Y N N Y
## 13 Y Y Y Y N N Y Y
## 12 N Y N Y Y N N N
## 4 N Y Y N N N N Y
## 5 Y N Y Y Y N Y Y
## 32 Y Y N Y N N Y N
## 36 Y Y Y Y Y N Y N
## 8 Y N N Y Y N N Y
## 15 Y Y Y Y Y N N Y
## 19 Y N Y Y Y N Y N
## 35 Y N N Y Y N N Y
## 46 Y Y Y Y Y N Y N
## 24 N Y Y Y Y N Y N
## 39 Y Y Y N Y N Y Y
## 34 Y Y Y Y Y Y Y N
## 44 Y Y Y N N N N Y
## 1 Y N N Y N N Y N
## 2 Y Y N N N N Y N
## 3 N N N N N N Y N
## 11 N N N N N N N N
## 30 N N N Y N N N Y
## 41 Y Y Y N N N N N
## 42 N Y Y N N N N N
## 7 N N N N N N N N
## 14 N N N N N N N N
## 18 N N N N N N N N
## 21 N N N N N N N N
## 22 N N N N N N N N
## 25 N N N N N N N N
## 31 N N N N N N N N
## 37 N N N N N N N N
## 40 N N N N N N N N
## 43 N N N N N N N N
## 6 N N N N N N N N
## 9 N N N N N N N N
## 28 N Y Y N Y N Y N
## 45 Y N Y Y Y N Y Y
## 27 N N N N N N N N
## 38 Y N N Y N N N Y
## 10 N N N Y N N Y N
## cakes vanilla.ice.cream chocolate.ice.cream fruit.salad
## 47 N N Y N
## 48 N N Y N
## 49 N Y N N
## 50 N Y Y Y
## 51 N N N N
## 52 Y Y N N
## 53 N N Y N
## 54 N Y N N
## 55 Y Y Y N
## 56 Y N Y N
## 57 Y Y Y N
## 58 Y N Y Y
## 59 N N Y N
## 60 N N Y N
## 61 Y N Y N
## 62 Y Y Y N
## 63 N Y Y N
## 64 Y N Y N
## 65 Y N Y N
## 66 N Y Y N
## 67 N N Y N
## 68 N N Y N
## 69 N N N N
## 70 Y N Y N
## 71 Y N Y N
## 72 N N Y N
## 73 Y Y N N
## 74 N N Y N
## 75 Y Y N N
## 33 N Y Y N
## 20 Y Y N Y
## 23 N Y N N
## 26 N Y N N
## 29 N Y NA Y
## 16 Y Y N N
## 17 Y Y N N
## 13 Y Y Y N
## 12 N Y N N
## 4 N Y N N
## 5 N Y N N
## 32 N Y Y N
## 36 Y Y N N
## 8 N Y Y N
## 15 Y Y Y N
## 19 Y Y N N
## 35 Y Y Y N
## 46 Y Y N Y
## 24 Y Y Y N
## 39 Y Y Y N
## 34 Y Y Y N
## 44 Y Y Y N
## 1 N Y N N
## 2 N Y Y N
## 3 Y Y Y N
## 11 N Y N N
## 30 N Y N N
## 41 Y Y Y N
## 42 N Y Y N
## 7 Y N Y N
## 14 Y Y N N
## 18 Y Y Y N
## 21 Y Y N N
## 22 N Y N N
## 25 Y N Y N
## 31 N Y N N
## 37 Y Y Y N
## 40 Y Y Y N
## 43 Y Y N N
## 6 N Y Y N
## 9 N Y Y N
## 28 Y Y Y N
## 45 Y Y Y N
## 27 N Y N Y
## 38 Y N Y N
## 10 Y Y Y N
#### Calculate incubation periods
incub.dt <- onset.dt - meal.dt
library(MASS) #load MASS package
truehist(as.numeric(incub.dt), nbins = 7, prob = FALSE, ylab = 'Frequency',
col = "skyblue", xlab = "Incubation Period (hours)")

#### Calculate mean, median, range; remember to remove NAs
mean(incub.dt, na.rm = TRUE)
## Time difference of 4.295455 hours
median(incub.dt, na.rm = TRUE)
## Time difference of 4 hours
range(incub.dt, na.rm = TRUE)
## Time differences in hours
## [1] 3 7