My dataframe:
dput(data)
structure(list(Analysis = c("1", "1", "1", "1", "1", "2", "2",
"2", "2", "2", "3", "3", "3", "3", "3", "4", "4", "4", "4", "4",
"5", "5", "5", "5", "5", "44931", "44931", "44931", "44931",
"44931", "44931", "44931", "44931", "44931", "44931", "6", "6",
"6", "6", "6", "7", "7", "7", "7", "7", "8", "8", "8", "8", "8",
"9", "9", "9", "9", "9", "10", "10", "10", "10", "10", "45087",
"45087", "45087", "45087", "45087", "45087", "45087", "45087",
"45087", "45087", "11", "11", "11", "11", "11", "12", "12", "12",
"12", "12", "13", "13", "13", "13", "13", "14", "14", "14", "14",
"14", "15", "15", "15", "15", "15", "45245", "45245", "45245",
"45245", "45245", "45245", "45245", "45245", "45245", "45245",
"16", "16", "16", "16", "16", "17", "17", "17", "17", "17", "18",
"18", "18", "18", "18", "19", "19", "19", "19", "19", "20", "20",
"20", "20", "20", "16-20", "16-20", "16-20", "16-20", "16-20",
"16-20.", "16-20.", "16-20.", "16-20.", "16-20."), Outcome = c("BMI",
"BMI", "BMI", "BMI", "BMI", "BMI", "BMI", "BMI", "BMI", "BMI",
"BMI", "BMI", "BMI", "BMI", "BMI", "BMI", "BMI", "BMI", "BMI",
"BMI", "BMI", "BMI", "BMI", "BMI", "BMI", "BMI", "BMI", "BMI",
"BMI", "BMI", "BMI", "BMI", "BMI", "BMI", "BMI", "WHR", "WHR",
"WHR", "WHR", "WHR", "WHR", "WHR", "WHR", "WHR", "WHR", "WHR",
"WHR", "WHR", "WHR", "WHR", "WHR", "WHR", "WHR", "WHR", "WHR",
"WHR", "WHR", "WHR", "WHR", "WHR", "WHR", "WHR", "WHR", "WHR",
"WHR", "WHR", "WHR", "WHR", "WHR", "WHR", "BF", "BF", "BF", "BF",
"BF", "BF", "BF", "BF", "BF", "BF", "BF", "BF", "BF", "BF", "BF",
"BF", "BF", "BF", "BF", "BF", "BF", "BF", "BF", "BF", "BF", "BF",
"BF", "BF", "BF", "BF", "BF", "BF", "BF", "BF", "BF", "WC", "WC",
"WC", "WC", "WC", "WC", "WC", "WC", "WC", "WC", "WC", "WC", "WC",
"WC", "WC", "WC", "WC", "WC", "WC", "WC", "WC", "WC", "WC", "WC",
"WC", "WC", "WC", "WC", "WC", "WC", "WC", "WC", "WC", "WC", "WC"
), Covariate = c("HD", "HD", "HD", "HD", "HD", "PA", "PA", "PA",
"PA", "PA", "PALC", "PALC", "PALC", "PALC", "PALC", "SMK", "SMK",
"SMK", "SMK", "SMK", "NS", "NS", "NS", "NS", "NS", "sum", "sum",
"sum", "sum", "sum", "PC1", "PC1", "PC1", "PC1", "PC1", "HD",
"HD", "HD", "HD", "HD", "PA", "PA", "PA", "PA", "PA", "PALC",
"PALC", "PALC", "PALC", "PALC", "SMK", "SMK", "SMK", "SMK", "SMK",
"NS", "NS", "NS", "NS", "NS", "sum", "sum", "sum", "sum", "sum",
"PC1", "PC1", "PC1", "PC1", "PC1", "HD", "HD", "HD", "HD", "HD",
"PA", "PA", "PA", "PA", "PA", "PALC", "PALC", "PALC", "PALC",
"PALC", "SMK", "SMK", "SMK", "SMK", "SMK", "NS", "NS", "NS",
"NS", "NS", "sum", "sum", "sum", "sum", "sum", "PC1", "PC1",
"PC1", "PC1", "PC1", "HD", "HD", "HD", "HD", "HD", "PA", "PA",
"PA", "PA", "PA", "PALC", "PALC", "PALC", "PALC", "PALC", "SMK",
"SMK", "SMK", "SMK", "SMK", "NS", "NS", "NS", "NS", "NS", "sum",
"sum", "sum", "sum", "sum", "PC1", "PC1", "PC1", "PC1", "PC1"
), Model = c("4", "4", "4", "4", "4*", "4", "4", "4", "4", "4*",
"4", "4", "4", "4", "4*", "4", "4", "4", "4", "4*", "4", "4",
"4", "4", "4*", "4", "4", "4", "4", "4*", "4", "4", "4", "4",
"4*", "4", "4", "4", "4", "4*", "4", "4", "4", "4", "4*", "4",
"4", "4", "4", "4*", "4", "4", "4", "4", "4*", "4", "4", "4",
"4", "4*", "4", "4", "4", "4", "4*", "4", "4", "4", "4", "4*",
"4", "4", "4", "4", "4*", "4", "4", "4", "4", "4*", "4", "4",
"4", "4", "4*", "4", "4", "4", "4", "4*", "4", "4", "4", "4",
"4*", "4", "4", "4", "4", "4*", "4", "4", "4", "4", "4*", "4",
"4", "4", "4", "4*", "4", "4", "4", "4", "4*", "4", "4", "4",
"4", "4*", "4", "4", "4", "4", "4*", "4", "4", "4", "4", "4*",
"4", "4", "4", "4", "4*", "4", "4", "4", "4", "4*"), Component = c("E",
"PRS_add", "PRS_gxe", "`PRS_gxe x E`", "`PRS_gxe x E`", "E",
"PRS_add", "PRS_gxe", "`PRS_gxe x E`", "`PRS_gxe x E`", "E",
"PRS_add", "PRS_gxe", "`PRS_gxe x E`", "`PRS_gxe x E`", "E",
"PRS_add", "PRS_gxe", "`PRS_gxe x E`", "`PRS_gxe x E`", "E",
"PRS_add", "PRS_gxe", "`PRS_gxe x E`", "`PRS_gxe x E`", "E",
"PRS_add", "PRS_gxe", "`PRS_gxe x E`", "`PRS_gxe x E`", "E",
"PRS_add", "PRS_gxe", "`PRS_gxe x E`", "`PRS_gxe x E`", "E",
"PRS_add", "PRS_gxe", "`PRS_gxe x E`", "`PRS_gxe x E`", "E",
"PRS_add", "PRS_gxe", "`PRS_gxe x E`", "`PRS_gxe x E`", "E",
"PRS_add", "PRS_gxe", "`PRS_gxe x E`", "`PRS_gxe x E`", "E",
"PRS_add", "PRS_gxe", "`PRS_gxe x E`", "`PRS_gxe x E`", "E",
"PRS_add", "PRS_gxe", "`PRS_gxe x E`", "`PRS_gxe x E`", "E",
"PRS_add", "PRS_gxe", "`PRS_gxe x E`", "`PRS_gxe x E`", "E",
"PRS_add", "PRS_gxe", "`PRS_gxe x E`", "`PRS_gxe x E`", "E",
"PRS_add", "PRS_gxe", "`PRS_gxe x E`", "`PRS_gxe x E`", "E",
"PRS_add", "PRS_gxe", "`PRS_gxe x E`", "`PRS_gxe x E`", "E",
"PRS_add", "PRS_gxe", "`PRS_gxe x E`", "`PRS_gxe x E`", "E",
"PRS_add", "PRS_gxe", "`PRS_gxe x E`", "`PRS_gxe x E`", "E",
"PRS_add", "PRS_gxe", "`PRS_gxe x E`", "`PRS_gxe x E`", "E",
"PRS_add", "PRS_gxe", "`PRS_gxe x E`", "`PRS_gxe x E`", "E",
"PRS_add", "PRS_gxe", "`PRS_gxe x E`", "`PRS_gxe x E`", "E",
"PRS_add", "PRS_gxe", "`PRS_gxe x E`", "`PRS_gxe x E`", "E",
"PRS_add", "PRS_gxe", "`PRS_gxe x E`", "`PRS_gxe x E`", "E",
"PRS_add", "PRS_gxe", "`PRS_gxe x E`", "`PRS_gxe x E`", "E",
"PRS_add", "PRS_gxe", "`PRS_gxe x E`", "`PRS_gxe x E`", "E",
"PRS_add", "PRS_gxe", "`PRS_gxe x E`", "`PRS_gxe x E`", "E",
"PRS_add", "PRS_gxe", "`PRS_gxe x E`", "`PRS_gxe x E`", "E",
"PRS_add", "PRS_gxe", "`PRS_gxe x E`", "`PRS_gxe x E`"), Estimate = c(-0.062380807,
0.261418927, -0.008830466, 0.012499253, NA, -0.0950719745, 0.2559453192,
0.0093277345, 0.0117124572, NA, 0.0166398868, 0.2461008616, 0.0029314746,
0.0226989723, NA, 0.0674496709, 0.2510790512, 0.0035534067, 0.018918288,
NA, 0.0094429625, 0.2591651705, -0.009464173, 0.0107123808, NA,
-0.0232108, 0.2178634, -0.008581625, 0.01278613, NA, -0.07834664,
0.2166238, 0.008461322, 0.03421711, NA, -0.0586041847, 0.1659735857,
0.0014867014, 0.0068498045, NA, -0.0684145928, 0.1589283042,
-0.0008041458, 0.0019058497, NA, 0.043087963, 0.1567704945, 0.0031239276,
0.0151203793, NA, 0.1130607299, 0.1564277515, -0.0004048215,
0.0076629355, NA, 0.0308930862, 0.1611094866, -0.0032195266,
0.0062717681, NA, 0.033923884, 0.135786842, -0.001091359, 0.009961985,
NA, -0.1091798016, 0.1334177138, 0.0082748328, 0.0217338742,
NA, -0.0532114142, 0.199453988, -0.0069068752, 0.0110325724,
NA, -0.1009898697, 0.1932538134, 0.0027129119, 0.0072478923,
NA, 0.0227549873, 0.1912166479, 0.0025180754, 0.0124924676, NA,
0.05905524, 0.1910188, -0.0004256009, 0.01166245, NA, 0.0168359536,
0.1980516157, -0.0100613659, 0.0058196998, NA, -0.025850049,
0.1657300912, -0.0035409, 0.0046373628, NA, -0.0834131523, 0.1644548358,
0.0011601316, 0.0225414204, NA, -0.0695000701, 0.2262457191,
-0.0035872725, 0.0122174121, NA, -0.1093854, 0.2154001, 0.002857311,
0.009985201, NA, 0.0396458, 0.2114433, 0.002295243, 0.0216002,
NA, 0.1059817367, 0.2135751165, 0.0038698127, 0.0113469119, NA,
0.0253791989, 0.2207742773, -0.0044751633, 0.0092238271, NA,
0.001528698, 0.1824065, -0.007178863, 0.01229887, NA, -0.116924816,
0.1805862599, 0.0067286533, 0.0304822783, NA), Standard.Error = c(0.0042631555,
0.0039966993, 0.0040101849, 0.0041433122, NA, 0.0059875456, 0.0043898351,
0.0043814963, 0.0059643889, NA, 0.004456627, 0.0042164649, 0.0042192539,
0.0041970341, NA, 0.0049525205, 0.0043946299, 0.0047202569, 0.0047586089,
NA, 0.004712734, 0.0044467898, 0.0044310905, 0.0046230496, NA,
0.0055383474, 0.005436978, 0.0054572147, 0.0054341941, NA, 0.0077533177,
0.0053896156, 0.0054924567, 0.007460565, NA, 0.0032629111, 0.0030114308,
0.0030109788, 0.0031728141, NA, 0.0042602873, 0.0032867379, 0.003267699,
0.0042434557, NA, 0.0040536565, 0.0032199786, 0.0032208938, 0.0038851264,
NA, 0.0040909885, 0.0032807477, 0.0033939093, 0.0039636985, NA,
0.0033543027, 0.00329436, 0.0032935824, 0.0032833201, NA, 0.004650396,
0.0042576777, 0.0042474218, 0.004569017, NA, 0.0066563262, 0.0042098678,
0.0042211134, 0.0064479665, NA, 0.0032705315, 0.0030154972, 0.0030057403,
0.0031829444, NA, 0.0050058966, 0.0032664303, 0.0032498159, 0.0049974453,
NA, 0.0033630348, 0.0032109432, 0.0031949128, 0.0031599641, NA,
0.0034515884, 0.0033183009, 0.0035137043, 0.0032969678, NA, 0.0033513282,
0.0033242799, 0.0033094765, 0.003277501, NA, 0.0047037403, 0.0042207196,
0.0042209977, 0.0046260399, NA, 0.0055754598, 0.0042016494, 0.0042540468,
0.0053314262, NA, 0.0037921467, 0.003546833, 0.0035654461, 0.0036869564,
NA, 0.0053083414, 0.0038543085, 0.0038431418, 0.0052894177, NA,
0.003953834, 0.0037460272, 0.0037464006, 0.0037182243, NA, 0.0040595846,
0.0038877666, 0.0040953111, 0.0038750877, NA, 0.0040095905, 0.0039234045,
0.0039192394, 0.0039265844, NA, 0.0054859283, 0.0049306632, 0.0049408194,
0.0053950349, NA, 0.0070745859, 0.0048685424, 0.0049473302, 0.0068144155,
NA), Test.Statistic = c(-14.6325432, 65.4087058, -2.2020096,
3.0167298, NA, -15.87828823, 58.30408476, 2.1288925, 1.96373131,
NA, 3.7337401, 58.3666342, 0.6947851, 5.4083363, NA, 13.61926132,
57.13315027, 0.75279943, 3.97559213, NA, 2.0037122, 58.2814076,
-2.1358564, 2.3171676, NA, -4.19092599, 40.07067349, -1.57252832,
2.3529033, NA, -10.104918018, 40.192804853, 1.540535134, 4.586396952,
NA, -17.9607052, 55.1145268, 0.4937602, 2.1589051, NA, -16.05868043,
48.35441941, -0.2460893, 0.4491268, NA, 10.62940655, 48.68681256,
0.96989462, 3.89186294, NA, 27.63653098, 47.68051823, -0.11927883,
1.93327911, NA, 9.2099876, 48.90463912, -0.97751512, 1.91019087,
NA, 7.2948377, 31.8922315, -0.2569463, 2.1803344, NA, -16.4024114,
31.6916634, 1.9603437, 3.3706556, NA, -16.26995919, 66.14298493,
-2.29789488, 3.466153, NA, -20.17418224, 59.16361186, 0.83478941,
1.45031947, NA, 6.7662062, 59.5515515, 0.7881515, 3.9533574,
NA, 17.10958442, 57.5652388, -0.12112599, 3.53732627, NA, 5.023666,
59.5772978, -3.0401685, 1.7756516, NA, -5.49563695, 39.26583735,
-0.83887751, 1.00244764, NA, -14.96076654, 39.14054213, 0.27271247,
4.22802821, NA, -18.3273684, 63.7880941, -1.0061217, 3.313685,
NA, -20.60633113, 55.88553101, 0.74348313, 1.88776935, NA, 10.02717967,
56.44467649, 0.61265298, 5.80927926, NA, 26.1065469, 54.9351698,
0.9449374, 2.9281691, NA, 6.3296237, 56.2710977, -1.1418448,
2.3490714, NA, 0.27865802, 36.99431935, -1.45297024, 2.27966501,
NA, -16.527443, 37.0924695, 1.3600575, 4.4732051, NA), P.value = c(2.138749e-48,
0, 0.02766868, 0.002556318, 0.002, 1.258141e-56, 0, 0.03326834,
0.04956714, 0.03, 0.0001888682, 0, 0.4871933, 6.390652e-08, 0,
3.69907e-42, 0, 0.4515742, 7.030912e-05, 0.00025, 0.04510662,
0, 0.03269626, 0.02049887, 0.022, 2.786758e-05, 0, 0.1158395,
0.0186344, 0.025, 5.779481e-24, 0, 0.1234413, 4.529257e-06, 2e-05,
6.296266e-72, 0, 0.6214775, 0.03086175, 0.017, 7.089679e-58,
0, 0.8056142, 0.6533423, 0.954, 2.321999e-26, 0, 0.3321038, 9.960751e-05,
7e-05, 8.762439e-167, 0, 0.905055, 0.05320781, 0.023, 3.391516e-20,
0, 0.3283192, 0.05611471, 0.056, 3.070117e-13, 3.061332e-219,
0.7972222, 0.02924104, 0.034, 3.525826e-60, 1.447669e-216, 0.04996561,
0.0007509156, 0.001, 2.215979e-59, 0, 0.02157148, 0.0005283629,
0.00064, 4.030583e-90, 0, 0.4038406, 0.1469762, 0.141, 1.336906e-11,
0, 0.4306119, 7.71707e-05, 7e-05, 1.999871e-65, 0, 0.9035918,
0.0004045942, 0.00032, 5.088211e-07, 0, 0.002365775, 0.07579691,
0.087, 3.927641e-08, 0, 0.4015454, 0.3161363, 0.315, 2.095113e-50,
0, 0.7850763, 2.365113e-05, 4e-05, 8.279006e-75, 0, 0.3143614,
0.0009213338, 0.00125, 6.275027e-94, 0, 0.4571929, 0.05906308,
0.061, 1.219482e-23, 0, 0.5401086, 6.312492e-09, 0, 3.564116e-149,
0, 0.3446957, 0.003411279, 0.002, 2.479661e-10, 0, 0.2535243,
0.01882441, 0.028, 0.7805094, 1.746567e-292, 0.1462433, 0.0226351,
0.035, 4.555706e-61, 5.449164e-294, 0.1738228, 7.736085e-06,
5e-05), R_sq = c(0.100865397143315, 0.100865397143315, 0.100865397143315,
0.100865397143315, NA, 0.107073178974154, 0.107073178974154,
0.107073178974154, 0.107073178974154, NA, 0.0969133176352893,
0.0969133176352893, 0.0969133176352893, 0.0969133176352893, NA,
0.0975421105075435, 0.0975421105075435, 0.0975421105075435, 0.0975421105075435,
NA, 0.0952375126194014, 0.0952375126194014, 0.0952375126194014,
0.0952375126194014, NA, 0.0862871099825099, 0.0862871099825099,
0.0862871099825099, 0.0862871099825099, NA, 0.0958838532501455,
0.0958838532501455, 0.0958838532501455, 0.0958838532501455, NA,
0.492841574091161, 0.492841574091161, 0.492841574091161, 0.492841574091161,
NA, 0.499725679443944, 0.499725679443944, 0.499725679443944,
0.499725679443944, NA, 0.497783354601557, 0.497783354601557,
0.497783354601557, 0.497783354601557, NA, 0.494536315222386,
0.494536315222386, 0.494536315222386, 0.494536315222386, NA,
0.491139458182066, 0.491139458182066, 0.491139458182066, 0.491139458182066,
NA, 0.491781984165542, 0.491781984165542, 0.491781984165542,
0.491781984165542, NA, 0.504545894379456, 0.504545894379456,
0.504545894379456, 0.504545894379456, NA, 0.503534909721919,
0.503534909721919, 0.503534909721919, 0.503534909721919, NA,
0.508038672984895, 0.508038672984895, 0.508038672984895, 0.508038672984895,
NA, 0.499516269784387, 0.499516269784387, 0.499516269784387,
0.499516269784387, NA, 0.503140516739568, 0.503140516739568,
0.503140516739568, 0.503140516739568, NA, 0.501412976625901,
0.501412976625901, 0.501412976625901, 0.501412976625901, NA,
0.491414493335579, 0.491414493335579, 0.491414493335579, 0.491414493335579,
NA, 0.499276463956527, 0.499276463956527, 0.499276463956527,
0.499276463956527, NA, 0.293359186738059, 0.293359186738059,
0.293359186738059, 0.293359186738059, NA, 0.308193711470299,
0.308193711470299, 0.308193711470299, 0.308193711470299, NA,
0.301429071351266, 0.301429071351266, 0.301429071351266, 0.301429071351266,
NA, 0.288935043551192, 0.288935043551192, 0.288935043551192,
0.288935043551192, NA, 0.287835593326278, 0.287835593326278,
0.287835593326278, 0.287835593326278, NA, 0.294130663800099,
0.294130663800099, 0.294130663800099, 0.294130663800099, NA,
0.311267603228644, 0.311267603228644, 0.311267603228644, 0.311267603228644,
NA), R_sq.P.value = c(0, 0, 0, 0, NA, 0, 0, 0, 0, NA, 0, 0, 0,
0, NA, 0, 0, 0, 0, NA, 0, 0, 0, 0, NA, 0, 0, 0, 0, NA, 0, 0,
0, 0, NA, 0, 0, 0, 0, NA, 0, 0, 0, 0, NA, 0, 0, 0, 0, NA, 0,
0, 0, 0, NA, 0, 0, 0, 0, NA, 0, 0, 0, 0, NA, 0, 0, 0, 0, NA,
0, 0, 0, 0, NA, 0, 0, 0, 0, NA, 0, 0, 0, 0, NA, 0, 0, 0, 0, NA,
0, 0, 0, 0, NA, 0, 0, 0, 0, NA, 0, 0, 0, 0, NA, 0, 0, 0, 0, NA,
0, 0, 0, 0, NA, 0, 0, 0, 0, NA, 0, 0, 0, 0, NA, 0, 0, 0, 0, NA,
0, 0, 0, 0, NA, 0, 0, 0, 0, NA), Var.R_sq = c(5.806319e-06, 5.806319e-06,
5.806319e-06, 5.806319e-06, NA, 7.262982e-06, 7.262982e-06, 7.262982e-06,
7.262982e-06, NA, 6.377753e-06, 6.377753e-06, 6.377753e-06, 6.377753e-06,
NA, 6.749924e-06, 6.749924e-06, 6.749924e-06, 6.749924e-06, NA,
6.620368e-06, 6.620368e-06, 6.620368e-06, 6.620368e-06, NA, 1.035739e-05,
1.035739e-05, 1.035739e-05, 1.035739e-05, NA, 1.126859e-05, 1.126859e-05,
1.126859e-05, 1.126859e-05, NA, 9.026057e-06, 9.026057e-06, 9.026057e-06,
9.026057e-06, NA, 1.064034e-05, 1.064034e-05, 1.064034e-05, 1.064034e-05,
NA, 1.01305e-05, 1.01305e-05, 1.01305e-05, 1.01305e-05, NA, 1.073528e-05,
1.073528e-05, 1.073528e-05, 1.073528e-05, NA, 1.079935e-05, 1.079935e-05,
1.079935e-05, 1.079935e-05, NA, 1.826135e-05, 1.826135e-05, 1.826135e-05,
1.826135e-05, NA, 1.780604e-05, 1.780604e-05, 1.780604e-05, 1.780604e-05,
NA, 8.964453e-06, 8.964453e-06, 8.964453e-06, 8.964453e-06, NA,
1.060793e-05, 1.060793e-05, 1.060793e-05, 1.060793e-05, NA, 1.02462e-05,
1.02462e-05, 1.02462e-05, 1.02462e-05, NA, 1.070066e-05, 1.070066e-05,
1.070066e-05, 1.070066e-05, NA, 1.073682e-05, 1.073682e-05, 1.073682e-05,
1.073682e-05, NA, 1.852647e-05, 1.852647e-05, 1.852647e-05, 1.852647e-05,
NA, 1.824541e-05, 1.824541e-05, 1.824541e-05, 1.824541e-05, NA,
1.042957e-05, 1.042957e-05, 1.042957e-05, 1.042957e-05, NA, 1.254755e-05,
1.254755e-05, 1.254755e-05, 1.254755e-05, NA, 1.186818e-05, 1.186818e-05,
1.186818e-05, 1.186818e-05, NA, 1.241146e-05, 1.241146e-05, 1.241146e-05,
1.241146e-05, NA, 1.239539e-05, 1.239539e-05, 1.239539e-05, 1.239539e-05,
NA, 2.106666e-05, 2.106666e-05, 2.106666e-05, 2.106666e-05, NA,
2.122465e-05, 2.122465e-05, 2.122465e-05, 2.122465e-05, NA),
r = c(0.31759313144858, 0.31759313144858, 0.31759313144858,
0.31759313144858, NA, 0.327220382883087, 0.327220382883087,
0.327220382883087, 0.327220382883087, NA, 0.311309038794715,
0.311309038794715, 0.311309038794715, 0.311309038794715,
NA, 0.312317323418896, 0.312317323418896, 0.312317323418896,
0.312317323418896, NA, 0.30860575597257, 0.30860575597257,
0.30860575597257, 0.30860575597257, NA, 0.293746676547174,
0.293746676547174, 0.293746676547174, 0.293746676547174,
NA, 0.309651179959233, 0.309651179959233, 0.309651179959233,
0.309651179959233, NA, 0.702026761663087, 0.702026761663087,
0.702026761663087, 0.702026761663087, NA, 0.706912780648323,
0.706912780648323, 0.706912780648323, 0.706912780648323,
NA, 0.705537635141852, 0.705537635141852, 0.705537635141852,
0.705537635141852, NA, 0.703232760344956, 0.703232760344956,
0.703232760344956, 0.703232760344956, NA, 0.700813426085763,
0.700813426085763, 0.700813426085763, 0.700813426085763,
NA, 0.701271690691662, 0.701271690691662, 0.701271690691662,
0.701271690691662, NA, 0.710313940718789, 0.710313940718789,
0.710313940718789, 0.710313940718789, NA, 0.709601937512799,
0.709601937512799, 0.709601937512799, 0.709601937512799,
NA, 0.712768316485024, 0.712768316485024, 0.712768316485024,
0.712768316485024, NA, 0.706764649501082, 0.706764649501082,
0.706764649501082, 0.706764649501082, NA, 0.70932398573541,
0.70932398573541, 0.70932398573541, 0.70932398573541, NA,
0.708105201665615, 0.708105201665615, 0.708105201665615,
0.708105201665615, NA, 0.701009624281706, 0.701009624281706,
0.701009624281706, 0.701009624281706, NA, 0.706594978722979,
0.706594978722979, 0.706594978722979, 0.706594978722979,
NA, 0.541626427289196, 0.541626427289196, 0.541626427289196,
0.541626427289196, NA, 0.555151971508973, 0.555151971508973,
0.555151971508973, 0.555151971508973, NA, 0.549025565298435,
0.549025565298435, 0.549025565298435, 0.549025565298435,
NA, 0.537526784031449, 0.537526784031449, 0.537526784031449,
0.537526784031449, NA, 0.536503115858872, 0.536503115858872,
0.536503115858872, 0.536503115858872, NA, 0.542338145256351,
0.542338145256351, 0.542338145256351, 0.542338145256351,
NA, 0.557913616278223, 0.557913616278223, 0.557913616278223,
0.557913616278223, NA)), row.names = c(NA, 140L), class = "data.frame")
R code:
library(zoo)
df$Estimate <- zoo::na.locf(df$Estimate)
df$QT_vs_E <- paste0(df$Outcome, "/", df$Covariate)
colnames(df)[6] <- "estimate"
colnames(df)[9] <- "p"
df$Model <- as.character(df$Model)
head(df)
QTdata0 <- df
QTdata <- QTdata0[QTdata0$Component == "`PRS_gxe x E`", ]
# Create a new column with p-value intervals
QTdata$p_interval <- cut(QTdata$p,
breaks = c(0, 0.00001, 0.0001, 0.001282051, 0.05, 1),
labels = c("< 0.00001", "0.0001", "0.001", "0.05", "1"),
include.lowest = TRUE)
# Define your custom legend values and sizes
legend_data <- data.frame(
p_value_interval = c("< 0.00001", "0.0001", "0.001", "0.05", "1"),
size = c(15,13,11,9,8)
)
# Define a labelling function
model_labeller <- function(x) {
return(paste("Model", x))
}
QTdata$Model <- as.character(QTdata$Model)
library(ggplot2)
#Create the plot
ggplot(data = QTdata, aes(x = QT_vs_E, y = Model, fill = estimate, size = p_interval)) +
geom_tile(color = "white", fill = "white") +
geom_point(shape = 22, color = "white", stroke = 0) +
geom_hline(yintercept = seq_along(unique(QTdata$Model)) + 0.5, color = "grey") +
geom_vline(xintercept = seq_along(unique(QTdata$QT_vs_E)) + 0.5, color = "grey") +
geom_vline(xintercept = 0.5, color = "grey")+
geom_hline(yintercept = 0.5, color = "grey")+
geom_text(data = subset(QTdata,(p <= 0.001282051)&(p > 0.0001)),
aes(label = "\u273B"),
size = 4, vjust = 0.5, hjust = 0.5,
show.legend = FALSE) +
geom_text(data = subset(QTdata, (p <= 0.0001)&(p > 0.00001)),
aes(label = "\u273B\u273B"),
size = 4, vjust = 0.5, hjust = 0.5,
show.legend = FALSE) +
geom_text(data = subset(QTdata, (p <= 0.00001)),
aes(label = "\u273B\u273B\u273B"),
size = 4, vjust = 0.5, hjust = 0.5,
show.legend = FALSE) +
scale_fill_gradientn(colours = c("red4", "white", "steelblue"),
limit = c(-max(abs(QTdata$estimate))-0.000, max(abs(QTdata$estimate))+0.000),
guide = guide_colorbar(title = "Estimate",
label.position = "right",
barwidth = 1,
barheight = 8,
title.position = "top",
order = 1)) +
scale_size_manual(values = legend_data$size,
breaks = legend_data$p_value_interval,
labels = legend_data$p_value_interval,
guide = guide_legend(title = "p value",
label.position = "right",
title.position = "top")) +
theme_minimal() +
theme(axis.text.x = element_text(angle = 45,
hjust = 1,
vjust = 1,
size = 12,
colour = "black"),
axis.text.y = element_text(size=12, color = "black"),
axis.title.y = element_text(size = 12),
legend.text = element_text(size = 12),
legend.title = element_text(size = 12),
legend.key.width = unit(0.01, "cm"),
legend.key.height = unit(0.01, "cm"),
legend.box = "horizontal",
legend.spacing.y = unit(0.5, "cm"),
legend.position = "right",
legend.box.margin = margin(b=-10, t=30, l=-1, r=11),
legend.box.just = ("center"),
plot.margin = margin(b=5, t=20, l=5, r=5)) +
labs(x = "", y = "Model", fill = "Estimate", size = "p value") +
guides(size = guide_legend(reverse = F,
label.position = "right",
title.position = "top",
override.aes = list(colour="grey",
shape=15,
fill="white",
size=legend_data$size-2)))
Image I need (note that I have added the asteriks in the p value legend manually using paint):
Image I got (when I updated RStudio, for the same code I couldn't control the p value legend height):
When I maximize the plot panel, I can see the full p value legend, but it stretches the entire heatmap, which isn't what I want. See the stretched image below:
I need to know how to modify my code in a way that I can properly scale the legend height (just as I have set the bar height to the Estimate color bar) in order to obtain a similar image as the first most one (image1).
I believe that geom_tile(...)
is causing the problem. If you remove this, the size legend should be more presentable.
ggplot(data = QTdata, aes(x = QT_vs_E, y = Model, fill = estimate, size = p_interval)) +
# geom_tile(color = "white", fill = "white") +
geom_point(shape = 22, color = "white", stroke = 0) +
geom_hline(yintercept = seq_along(unique(QTdata$Model)) + 0.5, color = "grey") + ...