birthweight <- read.csv("birthweight.csv")
birthweight
## ID birth.date location length birthweight head.circumference
## 1 1107 1/25/1967 General 52 3.23 36
## 2 697 2/6/1967 Silver Hill 48 3.03 35
## 3 1683 2/14/1967 Silver Hill 53 3.35 33
## 4 27 3/9/1967 Silver Hill 53 3.55 37
## 5 1522 3/13/1967 Memorial 50 2.74 33
## 6 569 3/23/1967 Memorial 50 2.51 35
## 7 365 4/23/1967 Memorial 52 3.53 37
## 8 808 5/5/1967 Silver Hill 48 2.92 33
## 9 1369 6/4/1967 Silver Hill 49 3.18 34
## 10 1023 6/7/1967 Memorial 52 3.00 35
## 11 822 6/14/1967 Memorial 50 3.42 35
## 12 1272 6/20/1967 Memorial 53 2.75 32
## 13 1262 6/25/1967 Silver Hill 53 3.19 34
## 14 575 7/12/1967 Memorial 50 2.78 30
## 15 1016 7/13/1967 Silver Hill 53 4.32 36
## 16 792 9/7/1967 Memorial 53 3.64 38
## 17 820 10/7/1967 General 52 3.77 34
## 18 752 10/19/1967 General 49 3.32 36
## 19 619 11/1/1967 Memorial 52 3.41 33
## 20 1764 12/7/1967 Silver Hill 58 4.57 39
## 21 1081 12/14/1967 Silver Hill 54 3.63 38
## 22 516 1/8/1968 Silver Hill 47 2.66 33
## 23 272 1/10/1968 Memorial 52 3.86 36
## 24 321 1/21/1968 Silver Hill 48 3.11 33
## 25 1636 2/2/1968 Silver Hill 51 3.93 38
## 26 1360 2/16/1968 General 56 4.55 34
## 27 1388 2/22/1968 Memorial 51 3.14 33
## 28 1363 4/2/1968 General 48 2.37 30
## 29 1058 4/24/1968 Silver Hill 53 3.15 34
## 30 755 4/25/1968 Memorial 53 3.20 33
## 31 462 6/19/1968 Silver Hill 58 4.10 39
## 32 300 7/18/1968 Silver Hill 46 2.05 32
## 33 1088 7/24/1968 General 51 3.27 36
## 34 57 8/12/1968 Memorial 51 3.32 38
## 35 553 8/17/1968 Silver Hill 54 3.94 37
## 36 1191 9/7/1968 General 53 3.65 33
## 37 431 9/16/1968 Silver Hill 48 1.92 30
## 38 1313 9/27/1968 Silver Hill 43 2.65 32
## 39 1600 10/9/1968 General 53 2.90 34
## 40 532 10/25/1968 General 53 3.59 34
## 41 223 12/11/1968 General 50 3.87 33
## 42 1187 12/19/1968 Silver Hill 53 4.07 38
## weeks.gestation smoker maternal.age maternal.cigarettes maternal.height
## 1 38 no 31 0 164
## 2 39 no 27 0 162
## 3 41 no 27 0 164
## 4 41 yes 37 25 161
## 5 39 yes 21 17 156
## 6 39 yes 22 7 159
## 7 40 yes 26 25 170
## 8 34 no 26 0 167
## 9 38 yes 31 25 162
## 10 38 yes 30 12 165
## 11 38 no 20 0 157
## 12 40 yes 37 50 168
## 13 41 yes 27 35 163
## 14 37 yes 19 7 165
## 15 40 no 19 0 171
## 16 40 yes 20 2 170
## 17 40 no 24 0 157
## 18 40 yes 27 12 152
## 19 39 yes 23 25 181
## 20 41 yes 32 12 173
## 21 38 no 18 0 172
## 22 35 yes 20 35 170
## 23 39 yes 30 25 170
## 24 37 no 28 0 158
## 25 38 no 29 0 165
## 26 44 no 20 0 162
## 27 41 yes 22 7 160
## 28 37 yes 20 7 163
## 29 40 no 29 0 167
## 30 41 no 21 0 155
## 31 41 no 35 0 172
## 32 35 yes 41 7 166
## 33 40 no 24 0 168
## 34 39 yes 23 17 157
## 35 42 no 24 0 175
## 36 42 no 21 0 165
## 37 33 yes 20 7 161
## 38 33 no 24 0 149
## 39 39 no 19 0 165
## 40 40 yes 31 12 163
## 41 45 yes 28 25 163
## 42 44 no 20 0 174
## maternal.prepregnant.weight paternal.age paternal.education
## 1 57 NA NA
## 2 62 27 14
## 3 62 37 14
## 4 66 46 NA
## 5 53 24 12
## 6 52 23 14
## 7 62 30 10
## 8 64 25 12
## 9 57 32 16
## 10 64 38 14
## 11 48 22 14
## 12 61 31 16
## 13 51 31 16
## 14 60 20 14
## 15 62 19 12
## 16 59 24 12
## 17 50 31 16
## 18 48 37 12
## 19 69 23 16
## 20 70 38 14
## 21 50 20 12
## 22 57 23 12
## 23 78 40 16
## 24 54 39 10
## 25 61 NA NA
## 26 57 23 10
## 27 53 24 16
## 28 47 20 10
## 29 60 30 16
## 30 55 25 14
## 31 58 31 16
## 32 57 37 14
## 33 53 29 16
## 34 48 NA NA
## 35 66 30 12
## 36 61 21 10
## 37 50 20 10
## 38 45 26 16
## 39 57 NA NA
## 40 49 41 12
## 41 54 30 16
## 42 68 26 14
## paternal.cigarettes paternal.height low.birthweight geriatric.pregnancy
## 1 NA NA 0 FALSE
## 2 0 178 0 FALSE
## 3 0 170 0 FALSE
## 4 0 175 0 TRUE
## 5 7 179 0 FALSE
## 6 25 NA 1 FALSE
## 7 25 181 0 FALSE
## 8 25 175 0 FALSE
## 9 50 194 0 FALSE
## 10 50 180 0 FALSE
## 11 0 179 0 FALSE
## 12 0 173 0 TRUE
## 13 25 185 0 FALSE
## 14 0 183 0 FALSE
## 15 0 183 0 FALSE
## 16 12 185 0 FALSE
## 17 0 173 0 FALSE
## 18 25 170 0 FALSE
## 19 2 181 0 FALSE
## 20 25 180 0 FALSE
## 21 7 172 0 FALSE
## 22 50 186 1 FALSE
## 23 50 178 0 FALSE
## 24 0 171 0 FALSE
## 25 NA NA 0 FALSE
## 26 35 179 0 FALSE
## 27 12 176 0 FALSE
## 28 35 185 1 FALSE
## 29 NA 182 0 FALSE
## 30 25 183 0 FALSE
## 31 25 185 0 TRUE
## 32 25 173 1 TRUE
## 33 0 181 0 FALSE
## 34 NA NA 0 FALSE
## 35 0 184 0 FALSE
## 36 25 185 0 FALSE
## 37 35 180 1 FALSE
## 38 0 169 1 FALSE
## 39 NA NA 0 FALSE
## 40 50 191 0 FALSE
## 41 0 183 0 FALSE
## 42 25 189 0 FALSE
Di bagian terakhir, Anda diminta untuk mengubah kolom “perokok” menjadi nilai logika. Solusinya cukup sederhana:
birthweight$smoker == "yes"
## [1] FALSE FALSE FALSE TRUE TRUE TRUE TRUE FALSE TRUE TRUE FALSE TRUE
## [13] TRUE TRUE FALSE TRUE FALSE TRUE TRUE TRUE FALSE TRUE TRUE FALSE
## [25] FALSE FALSE TRUE TRUE FALSE FALSE FALSE TRUE FALSE TRUE FALSE FALSE
## [37] TRUE FALSE FALSE TRUE TRUE FALSE
birthweight$smoker <- (birthweight$smoker == "yes")
Mengonversi tanggal (saat ini disimpan sebagai karakter) ke format yang lebih bermanfaat tidaklah mudah, dan memerlukan suatu fungsi.
R diisi dengan fungsi. Kami telah menggunakan beberapa: read.csv(), class(), dim(), mean(), colnames(), as.logical(), dan as.numeric(). Untuk menemukan dokumentasi suatu fungsi, gunakan ?karakter. Ini akan membuka halaman yang berisi rincian fungsi di panel bantuan.
?table
table(birthweight$geriatric.pregnancy, birthweight$low.birthweight)
##
## 0 1
## FALSE 33 5
## TRUE 3 1
Fungsi dipanggil berdasarkan nama, dengan argumen apa pun diberikan di dalam tanda kurung. Misalnya, chisq.test()fungsi yang menjalankan uji Chi-kuadrat memerlukan matriks atau dua vektor sebagai argumen, dan menyediakan sejumlah opsi yang dapat diatur oleh pengguna.
?chisq.test
chisq.test(birthweight$geriatric.pregnancy, birthweight$low.birthweight)
## Warning in chisq.test(birthweight$geriatric.pregnancy,
## birthweight$low.birthweight): Chi-squared approximation may be incorrect
##
## Pearson's Chi-squared test with Yates' continuity correction
##
## data: birthweight$geriatric.pregnancy and birthweight$low.birthweight
## X-squared = 2.7398e-31, df = 1, p-value = 1
Jika tidak ada parameter yang diberikan pada opsi, nilai default akan digunakan. Dalam beberapa kasus, ini berfungsi dengan baik.
mean(birthweight$birthweight[birthweight$geriatric.pregnancy])
## [1] 3.1125
# the ! character is used for negation
mean(birthweight$birthweight[!birthweight$geriatric.pregnancy])
## [1] 3.333947
Di lain waktu, Anda perlu menyesuaikan opsi agar suatu fungsi berfungsi seperti yang Anda harapkan.
mean(birthweight$paternal.age)
## [1] NA
mean(birthweight$paternal.age, na.rm = TRUE)
## [1] 28.76316
sd(birthweight$paternal.age, na.rm = TRUE)
## [1] 7.061254
Kolom “tanggal lahir” saat ini disimpan sebagai vektor karakter. Namun bagaimana jika kita ingin melihat berat lahir bayi yang lahir di bulan Desember? Mari kita bagi hari, bulan, dan tahun menjadi kolom terpisah.
R memiliki fungsi yang disebut strsplit():
?strsplit
strsplit(birthweight$birth.date, split = "/")
## [[1]]
## [1] "1" "25" "1967"
##
## [[2]]
## [1] "2" "6" "1967"
##
## [[3]]
## [1] "2" "14" "1967"
##
## [[4]]
## [1] "3" "9" "1967"
##
## [[5]]
## [1] "3" "13" "1967"
##
## [[6]]
## [1] "3" "23" "1967"
##
## [[7]]
## [1] "4" "23" "1967"
##
## [[8]]
## [1] "5" "5" "1967"
##
## [[9]]
## [1] "6" "4" "1967"
##
## [[10]]
## [1] "6" "7" "1967"
##
## [[11]]
## [1] "6" "14" "1967"
##
## [[12]]
## [1] "6" "20" "1967"
##
## [[13]]
## [1] "6" "25" "1967"
##
## [[14]]
## [1] "7" "12" "1967"
##
## [[15]]
## [1] "7" "13" "1967"
##
## [[16]]
## [1] "9" "7" "1967"
##
## [[17]]
## [1] "10" "7" "1967"
##
## [[18]]
## [1] "10" "19" "1967"
##
## [[19]]
## [1] "11" "1" "1967"
##
## [[20]]
## [1] "12" "7" "1967"
##
## [[21]]
## [1] "12" "14" "1967"
##
## [[22]]
## [1] "1" "8" "1968"
##
## [[23]]
## [1] "1" "10" "1968"
##
## [[24]]
## [1] "1" "21" "1968"
##
## [[25]]
## [1] "2" "2" "1968"
##
## [[26]]
## [1] "2" "16" "1968"
##
## [[27]]
## [1] "2" "22" "1968"
##
## [[28]]
## [1] "4" "2" "1968"
##
## [[29]]
## [1] "4" "24" "1968"
##
## [[30]]
## [1] "4" "25" "1968"
##
## [[31]]
## [1] "6" "19" "1968"
##
## [[32]]
## [1] "7" "18" "1968"
##
## [[33]]
## [1] "7" "24" "1968"
##
## [[34]]
## [1] "8" "12" "1968"
##
## [[35]]
## [1] "8" "17" "1968"
##
## [[36]]
## [1] "9" "7" "1968"
##
## [[37]]
## [1] "9" "16" "1968"
##
## [[38]]
## [1] "9" "27" "1968"
##
## [[39]]
## [1] "10" "9" "1968"
##
## [[40]]
## [1] "10" "25" "1968"
##
## [[41]]
## [1] "12" "11" "1968"
##
## [[42]]
## [1] "12" "19" "1968"
ni adalah awal yang baik. Namun keluarannya strsplit()adalah daftar yang berisi 42 vektor dengan panjang 3, sedangkan kolom berat lahir adalah vektor dengan panjang 42.
Catatan tentang daftar:
Daftar adalah kumpulan objek yang diurutkan, yang dapat berupa jenis apa pun. Tidak seperti vektor, daftar dapat berisi elemen dengan tipe berbeda. Untuk membuat subset daftar, gunakan operator $atau [[.
Fungsi ini unlist()akan “meratakan” daftar menjadi vektor.
unlist(strsplit(birthweight$birth.date, split = "/"))
## [1] "1" "25" "1967" "2" "6" "1967" "2" "14" "1967" "3"
## [11] "9" "1967" "3" "13" "1967" "3" "23" "1967" "4" "23"
## [21] "1967" "5" "5" "1967" "6" "4" "1967" "6" "7" "1967"
## [31] "6" "14" "1967" "6" "20" "1967" "6" "25" "1967" "7"
## [41] "12" "1967" "7" "13" "1967" "9" "7" "1967" "10" "7"
## [51] "1967" "10" "19" "1967" "11" "1" "1967" "12" "7" "1967"
## [61] "12" "14" "1967" "1" "8" "1968" "1" "10" "1968" "1"
## [71] "21" "1968" "2" "2" "1968" "2" "16" "1968" "2" "22"
## [81] "1968" "4" "2" "1968" "4" "24" "1968" "4" "25" "1968"
## [91] "6" "19" "1968" "7" "18" "1968" "7" "24" "1968" "8"
## [101] "12" "1968" "8" "17" "1968" "9" "7" "1968" "9" "16"
## [111] "1968" "9" "27" "1968" "10" "9" "1968" "10" "25" "1968"
## [121] "12" "11" "1968" "12" "19" "1968"
Ketika fungsi “bersarang”, operasi dalam kumpulan tanda kurung paling dalam akan dilakukan terlebih dahulu. Pada contoh di atas, unlist()fungsi diterapkan pada keluaran strsplit(), mengubah daftar menjadi vektor. Karena tujuannya adalah untuk membagi satu kolom menjadi tiga kolom, kombinasi fungsi ini tidak efektif.
Kita perlu menerapkan beberapa fungsi ke setiap item dalam daftar yang memungkinkan kita mengambil elemen pertama dari vektor.
Salah satu kelompok fungsi yang paling berguna di R adalah apply()kelompok fungsi. Kelompok fungsi ini menjalankan fungsi yang disediakan pada setiap elemen struktur data.
apply mengambil matriks, menerapkan fungsi per baris atau kolom, dan mengembalikan vektor.
# by row
apply(birthweight[,c("maternal.cigarettes", "paternal.cigarettes")], 1, sum)
## [1] NA 0 0 25 24 32 50 25 75 62 0 50 60 7 0 14 0 37 27 37 7 85 75 0 NA
## [26] 35 19 42 NA 25 25 32 0 NA 0 25 42 0 NA 62 25 25
# by column
apply(birthweight[,c("maternal.cigarettes", "paternal.cigarettes")], 2, sum)
## maternal.cigarettes paternal.cigarettes
## 396 NA
mapply mengambil suatu fungsi dan menerapkannya pada elemen dari satu atau lebih vektor.
mapply(sum, birthweight$maternal.cigarettes, birthweight$paternal.cigarettes)
## [1] NA 0 0 25 24 32 50 25 75 62 0 50 60 7 0 14 0 37 27 37 7 85 75 0 NA
## [26] 35 19 42 NA 25 25 32 0 NA 0 25 42 0 NA 62 25 25
tapply mengambil dua vektor, menerapkan fungsi ke himpunan bagian vektor pertama berdasarkan kategori pada vektor kedua, dan mengembalikan tabel.
tapply(birthweight$birthweight, birthweight$smoker, mean)
## FALSE TRUE
## 3.509500 3.134091
lapply mengambil daftar, menerapkan fungsi ke setiap elemen, dan mengembalikan daftar.
sapply mengambil daftar, menerapkan fungsi ke setiap elemen, dan mengembalikan daftar yang telah disederhanakan sebanyak mungkin.
lapply(strsplit(birthweight$birth.date, split = "/"), '[[', 1)
## [[1]]
## [1] "1"
##
## [[2]]
## [1] "2"
##
## [[3]]
## [1] "2"
##
## [[4]]
## [1] "3"
##
## [[5]]
## [1] "3"
##
## [[6]]
## [1] "3"
##
## [[7]]
## [1] "4"
##
## [[8]]
## [1] "5"
##
## [[9]]
## [1] "6"
##
## [[10]]
## [1] "6"
##
## [[11]]
## [1] "6"
##
## [[12]]
## [1] "6"
##
## [[13]]
## [1] "6"
##
## [[14]]
## [1] "7"
##
## [[15]]
## [1] "7"
##
## [[16]]
## [1] "9"
##
## [[17]]
## [1] "10"
##
## [[18]]
## [1] "10"
##
## [[19]]
## [1] "11"
##
## [[20]]
## [1] "12"
##
## [[21]]
## [1] "12"
##
## [[22]]
## [1] "1"
##
## [[23]]
## [1] "1"
##
## [[24]]
## [1] "1"
##
## [[25]]
## [1] "2"
##
## [[26]]
## [1] "2"
##
## [[27]]
## [1] "2"
##
## [[28]]
## [1] "4"
##
## [[29]]
## [1] "4"
##
## [[30]]
## [1] "4"
##
## [[31]]
## [1] "6"
##
## [[32]]
## [1] "7"
##
## [[33]]
## [1] "7"
##
## [[34]]
## [1] "8"
##
## [[35]]
## [1] "8"
##
## [[36]]
## [1] "9"
##
## [[37]]
## [1] "9"
##
## [[38]]
## [1] "9"
##
## [[39]]
## [1] "10"
##
## [[40]]
## [1] "10"
##
## [[41]]
## [1] "12"
##
## [[42]]
## [1] "12"
sapply(strsplit(birthweight$birth.date, split = "/"), '[[', 1)
## [1] "1" "2" "2" "3" "3" "3" "4" "5" "6" "6" "6" "6" "6" "7" "7"
## [16] "9" "10" "10" "11" "12" "12" "1" "1" "1" "2" "2" "2" "4" "4" "4"
## [31] "6" "7" "7" "8" "8" "9" "9" "9" "10" "10" "12" "12"
Hasil dari pasangan fungsi bertingkat ini adalah vektor bulan yang dikodekan sebagai angka yang disimpan sebagai karakter.
Bagaimana jika kita ingin melakukan ini untuk ketiga kolom, tetapi kita tidak ingin menulis kodenya tiga kali?
Luangkan waktu beberapa menit untuk membedah fungsi berikut, bekerja dari dalam ke luar. Apa fungsi masing-masing bagian?
# custom function takes a vector of dates and returns a data frame with columns day, month, and year
split_MMDDYYYY <- function(date_vector){
date_list = lapply(seq(1:3), function(i){
as.integer(sapply(strsplit(date_vector, split = "/"), '[[', i))
})
names(date_list) = c("month", "day", "year")
as.data.frame(do.call("cbind", date_list))
}
split_MMDDYYYY(birthweight$birth.date)
## month day year
## 1 1 25 1967
## 2 2 6 1967
## 3 2 14 1967
## 4 3 9 1967
## 5 3 13 1967
## 6 3 23 1967
## 7 4 23 1967
## 8 5 5 1967
## 9 6 4 1967
## 10 6 7 1967
## 11 6 14 1967
## 12 6 20 1967
## 13 6 25 1967
## 14 7 12 1967
## 15 7 13 1967
## 16 9 7 1967
## 17 10 7 1967
## 18 10 19 1967
## 19 11 1 1967
## 20 12 7 1967
## 21 12 14 1967
## 22 1 8 1968
## 23 1 10 1968
## 24 1 21 1968
## 25 2 2 1968
## 26 2 16 1968
## 27 2 22 1968
## 28 4 2 1968
## 29 4 24 1968
## 30 4 25 1968
## 31 6 19 1968
## 32 7 18 1968
## 33 7 24 1968
## 34 8 12 1968
## 35 8 17 1968
## 36 9 7 1968
## 37 9 16 1968
## 38 9 27 1968
## 39 10 9 1968
## 40 10 25 1968
## 41 12 11 1968
## 42 12 19 1968
birthweight <- cbind(birthweight, split_MMDDYYYY(birthweight$birth.date))
tapply(birthweight$birthweight, birthweight$month, mean)
## 1 2 3 4 5 6 7 8
## 3.215000 3.600000 2.933333 3.062500 2.920000 3.273333 3.105000 3.630000
## 9 10 11 12
## 2.965000 3.395000 3.410000 4.035000
Untuk contoh percobaan ini, kami juga memiliki data ekspresi miRNA plasenta. Nilai-nilai ini bukan berasal dari sampel nyata, namun telah dimanipulasi untuk mereproduksi secara kasar efek yang diamati oleh Maccani dkk. 2010 .
download.file("https://raw.githubusercontent.com/ucdavis-bioinformatics-training/2022_February_Introduction_to_R_for_Bioinformatics/main/miRNA.csv", "miRNA.csv")
mir <- read.csv("miRNA.csv", row.names = 1)
mir
## sample.27 sample.1522 sample.569 sample.365 sample.1369 sample.1023
## miR-16 46 56 47 54 56 59
## miR-21 52 43 40 35 59 47
## miR-146a 98 97 87 96 84 96
## miR-182 53 45 63 41 46 50
## sample.1272 sample.1262 sample.575 sample.792 sample.752 sample.619
## miR-16 49 55 62 63 46 52
## miR-21 42 45 55 45 42 43
## miR-146a 88 97 96 104 103 92
## miR-182 49 50 62 51 64 58
## sample.1764 sample.516 sample.272 sample.1388 sample.1363 sample.300
## miR-16 46 61 49 46 61 60
## miR-21 40 51 43 44 47 48
## miR-146a 98 97 91 105 77 89
## miR-182 57 59 55 60 60 65
## sample.57 sample.431 sample.532 sample.223 sample.1107 sample.697
## miR-16 46 70 60 60 57 68
## miR-21 39 51 44 46 49 47
## miR-146a 105 84 94 87 116 98
## miR-182 40 48 49 52 48 57
## sample.1683 sample.808 sample.822 sample.1016 sample.820 sample.1081
## miR-16 49 59 54 69 58 55
## miR-21 48 56 52 41 55 52
## miR-146a 98 101 86 98 102 93
## miR-182 55 74 49 51 53 52
## sample.321 sample.1636 sample.1360 sample.1058 sample.755 sample.462
## miR-16 68 63 70 77 56 65
## miR-21 46 39 57 55 46 58
## miR-146a 125 104 111 124 101 101
## miR-182 60 43 46 56 50 60
## sample.1088 sample.553 sample.1191 sample.1313 sample.1600 sample.1187
## miR-16 42 63 66 64 50 57
## miR-21 54 54 48 47 44 46
## miR-146a 107 106 102 104 111 86
## miR-182 63 60 50 42 67 43
Pada objek ini, baris adalah pengidentifikasi gen, dan kolom adalah sampelnya.
mir <- as.data.frame(t(mir))
mir$ID <- gsub("sample.", "", rownames(mir))
experiment <- merge(birthweight, mir)
Apa fungsi baris kode ini? Jelajahi masing-masingnya , cari bantuan fungsi yang digunakan ?seperlunya.
experiment
## ID birth.date location length birthweight head.circumference
## 1 27 3/9/1967 Silver Hill 53 3.55 37
## 2 57 8/12/1968 Memorial 51 3.32 38
## 3 223 12/11/1968 General 50 3.87 33
## 4 272 1/10/1968 Memorial 52 3.86 36
## 5 300 7/18/1968 Silver Hill 46 2.05 32
## 6 321 1/21/1968 Silver Hill 48 3.11 33
## 7 365 4/23/1967 Memorial 52 3.53 37
## 8 431 9/16/1968 Silver Hill 48 1.92 30
## 9 462 6/19/1968 Silver Hill 58 4.10 39
## 10 516 1/8/1968 Silver Hill 47 2.66 33
## 11 532 10/25/1968 General 53 3.59 34
## 12 553 8/17/1968 Silver Hill 54 3.94 37
## 13 569 3/23/1967 Memorial 50 2.51 35
## 14 575 7/12/1967 Memorial 50 2.78 30
## 15 619 11/1/1967 Memorial 52 3.41 33
## 16 697 2/6/1967 Silver Hill 48 3.03 35
## 17 752 10/19/1967 General 49 3.32 36
## 18 755 4/25/1968 Memorial 53 3.20 33
## 19 792 9/7/1967 Memorial 53 3.64 38
## 20 808 5/5/1967 Silver Hill 48 2.92 33
## 21 820 10/7/1967 General 52 3.77 34
## 22 822 6/14/1967 Memorial 50 3.42 35
## 23 1016 7/13/1967 Silver Hill 53 4.32 36
## 24 1023 6/7/1967 Memorial 52 3.00 35
## 25 1058 4/24/1968 Silver Hill 53 3.15 34
## 26 1081 12/14/1967 Silver Hill 54 3.63 38
## 27 1088 7/24/1968 General 51 3.27 36
## 28 1107 1/25/1967 General 52 3.23 36
## 29 1187 12/19/1968 Silver Hill 53 4.07 38
## 30 1191 9/7/1968 General 53 3.65 33
## 31 1262 6/25/1967 Silver Hill 53 3.19 34
## 32 1272 6/20/1967 Memorial 53 2.75 32
## 33 1313 9/27/1968 Silver Hill 43 2.65 32
## 34 1360 2/16/1968 General 56 4.55 34
## 35 1363 4/2/1968 General 48 2.37 30
## 36 1369 6/4/1967 Silver Hill 49 3.18 34
## 37 1388 2/22/1968 Memorial 51 3.14 33
## 38 1522 3/13/1967 Memorial 50 2.74 33
## 39 1600 10/9/1968 General 53 2.90 34
## 40 1636 2/2/1968 Silver Hill 51 3.93 38
## 41 1683 2/14/1967 Silver Hill 53 3.35 33
## 42 1764 12/7/1967 Silver Hill 58 4.57 39
## weeks.gestation smoker maternal.age maternal.cigarettes maternal.height
## 1 41 TRUE 37 25 161
## 2 39 TRUE 23 17 157
## 3 45 TRUE 28 25 163
## 4 39 TRUE 30 25 170
## 5 35 TRUE 41 7 166
## 6 37 FALSE 28 0 158
## 7 40 TRUE 26 25 170
## 8 33 TRUE 20 7 161
## 9 41 FALSE 35 0 172
## 10 35 TRUE 20 35 170
## 11 40 TRUE 31 12 163
## 12 42 FALSE 24 0 175
## 13 39 TRUE 22 7 159
## 14 37 TRUE 19 7 165
## 15 39 TRUE 23 25 181
## 16 39 FALSE 27 0 162
## 17 40 TRUE 27 12 152
## 18 41 FALSE 21 0 155
## 19 40 TRUE 20 2 170
## 20 34 FALSE 26 0 167
## 21 40 FALSE 24 0 157
## 22 38 FALSE 20 0 157
## 23 40 FALSE 19 0 171
## 24 38 TRUE 30 12 165
## 25 40 FALSE 29 0 167
## 26 38 FALSE 18 0 172
## 27 40 FALSE 24 0 168
## 28 38 FALSE 31 0 164
## 29 44 FALSE 20 0 174
## 30 42 FALSE 21 0 165
## 31 41 TRUE 27 35 163
## 32 40 TRUE 37 50 168
## 33 33 FALSE 24 0 149
## 34 44 FALSE 20 0 162
## 35 37 TRUE 20 7 163
## 36 38 TRUE 31 25 162
## 37 41 TRUE 22 7 160
## 38 39 TRUE 21 17 156
## 39 39 FALSE 19 0 165
## 40 38 FALSE 29 0 165
## 41 41 FALSE 27 0 164
## 42 41 TRUE 32 12 173
## maternal.prepregnant.weight paternal.age paternal.education
## 1 66 46 NA
## 2 48 NA NA
## 3 54 30 16
## 4 78 40 16
## 5 57 37 14
## 6 54 39 10
## 7 62 30 10
## 8 50 20 10
## 9 58 31 16
## 10 57 23 12
## 11 49 41 12
## 12 66 30 12
## 13 52 23 14
## 14 60 20 14
## 15 69 23 16
## 16 62 27 14
## 17 48 37 12
## 18 55 25 14
## 19 59 24 12
## 20 64 25 12
## 21 50 31 16
## 22 48 22 14
## 23 62 19 12
## 24 64 38 14
## 25 60 30 16
## 26 50 20 12
## 27 53 29 16
## 28 57 NA NA
## 29 68 26 14
## 30 61 21 10
## 31 51 31 16
## 32 61 31 16
## 33 45 26 16
## 34 57 23 10
## 35 47 20 10
## 36 57 32 16
## 37 53 24 16
## 38 53 24 12
## 39 57 NA NA
## 40 61 NA NA
## 41 62 37 14
## 42 70 38 14
## paternal.cigarettes paternal.height low.birthweight geriatric.pregnancy
## 1 0 175 0 TRUE
## 2 NA NA 0 FALSE
## 3 0 183 0 FALSE
## 4 50 178 0 FALSE
## 5 25 173 1 TRUE
## 6 0 171 0 FALSE
## 7 25 181 0 FALSE
## 8 35 180 1 FALSE
## 9 25 185 0 TRUE
## 10 50 186 1 FALSE
## 11 50 191 0 FALSE
## 12 0 184 0 FALSE
## 13 25 NA 1 FALSE
## 14 0 183 0 FALSE
## 15 2 181 0 FALSE
## 16 0 178 0 FALSE
## 17 25 170 0 FALSE
## 18 25 183 0 FALSE
## 19 12 185 0 FALSE
## 20 25 175 0 FALSE
## 21 0 173 0 FALSE
## 22 0 179 0 FALSE
## 23 0 183 0 FALSE
## 24 50 180 0 FALSE
## 25 NA 182 0 FALSE
## 26 7 172 0 FALSE
## 27 0 181 0 FALSE
## 28 NA NA 0 FALSE
## 29 25 189 0 FALSE
## 30 25 185 0 FALSE
## 31 25 185 0 FALSE
## 32 0 173 0 TRUE
## 33 0 169 1 FALSE
## 34 35 179 0 FALSE
## 35 35 185 1 FALSE
## 36 50 194 0 FALSE
## 37 12 176 0 FALSE
## 38 7 179 0 FALSE
## 39 NA NA 0 FALSE
## 40 NA NA 0 FALSE
## 41 0 170 0 FALSE
## 42 25 180 0 FALSE
## month day year miR-16 miR-21 miR-146a miR-182
## 1 3 9 1967 46 52 98 53
## 2 8 12 1968 46 39 105 40
## 3 12 11 1968 60 46 87 52
## 4 1 10 1968 49 43 91 55
## 5 7 18 1968 60 48 89 65
## 6 1 21 1968 68 46 125 60
## 7 4 23 1967 54 35 96 41
## 8 9 16 1968 70 51 84 48
## 9 6 19 1968 65 58 101 60
## 10 1 8 1968 61 51 97 59
## 11 10 25 1968 60 44 94 49
## 12 8 17 1968 63 54 106 60
## 13 3 23 1967 47 40 87 63
## 14 7 12 1967 62 55 96 62
## 15 11 1 1967 52 43 92 58
## 16 2 6 1967 68 47 98 57
## 17 10 19 1967 46 42 103 64
## 18 4 25 1968 56 46 101 50
## 19 9 7 1967 63 45 104 51
## 20 5 5 1967 59 56 101 74
## 21 10 7 1967 58 55 102 53
## 22 6 14 1967 54 52 86 49
## 23 7 13 1967 69 41 98 51
## 24 6 7 1967 59 47 96 50
## 25 4 24 1968 77 55 124 56
## 26 12 14 1967 55 52 93 52
## 27 7 24 1968 42 54 107 63
## 28 1 25 1967 57 49 116 48
## 29 12 19 1968 57 46 86 43
## 30 9 7 1968 66 48 102 50
## 31 6 25 1967 55 45 97 50
## 32 6 20 1967 49 42 88 49
## 33 9 27 1968 64 47 104 42
## 34 2 16 1968 70 57 111 46
## 35 4 2 1968 61 47 77 60
## 36 6 4 1967 56 59 84 46
## 37 2 22 1968 46 44 105 60
## 38 3 13 1967 56 43 97 45
## 39 10 9 1968 50 44 111 67
## 40 2 2 1968 63 39 104 43
## 41 2 14 1967 49 48 98 55
## 42 12 7 1967 46 40 98 57