This is the analysis of the data that was collected by our collaborators in Nigeria, Alihu Ramatu and colleagues, from University of Ahmadu-Bello in Zaria.
setwd("/Users/magda/Dropbox/DataAndAnalysis/cowpea/Nigerian_population/Nigeria_field_exp_2021/")
list.files(pattern="csv")
## [1] "Bruchid_2021.csv" "Drought_2021.csv" "HighP_2021.csv" "LowP_2021.csv"
LowP <- read.csv("LowP_2021.csv")
HighP <- read.csv("HighP_2021.csv")
Drought <- read.csv("Drought_2021.csv")
Bruchid <- read.csv("Bruchid_2021.csv")
dim(LowP)
## [1] 622 31
dim(HighP)
## [1] 624 31
dim(Drought)
## [1] 632 18
dim(Bruchid)
## [1] 1278 36
head(LowP)
head(HighP)
head(Drought)
head(Bruchid)
I think it might be best to fuse low and high P into one thing since the recorded traits are exactly the same.
LowP$Treatment <- "LowP"
HighP$Treatment <- "HighP"
colnames(LowP)
## [1] "ENTRY_TYPE" "Genotypes" "AccessionNO" "DFF"
## [5] "D50F" "MAT" "D95MAT" "Nobranch"
## [9] "Stand" "Pheight" "freshFodder_g" "DryFoddr_g"
## [13] "Seed_wt" "Yield_kg_ha" "Pharvest" "GrowthHt"
## [17] "Pod_pigm" "Pod_load" "AphidIncidence" "No_thrips"
## [21] "Viral_incidence" "sdwt100" "Scab_leaves" "Scab_stem"
## [25] "Scab_peduncles" "Scab_pod" "Septoria" "Bblight"
## [29] "SeedColour" "Seedtexture" "Eyecolour" "Treatment"
colnames(HighP)
## [1] "ENTRY_TYPE" "Genotypes" "AccessionNO" "DFF"
## [5] "D50F" "DFMAT" "D95MAT" "Nbranch"
## [9] "Stand" "Pheight" "freshFodder_g" "DryFoddr_g"
## [13] "Seed_Weight_g" "Yield_kg_ha" "Pharvest" "Growth_ht"
## [17] "Pod_pigm" "PodLoad" "AphidIncidence" "No_thrips"
## [21] "Viral_incidence" "sdwt100" "Scab_leaves" "Scab_stem"
## [25] "Scab_peduncles" "Scab_pods" "Septoria" "Bblight"
## [29] "SeedColour" "Seedtexture" "EyeColour" "Treatment"
colnames(LowP) %in% colnames(HighP)
## [1] TRUE TRUE TRUE TRUE TRUE FALSE TRUE FALSE TRUE TRUE TRUE TRUE
## [13] FALSE TRUE TRUE FALSE TRUE FALSE TRUE TRUE TRUE TRUE TRUE TRUE
## [25] TRUE FALSE TRUE TRUE TRUE TRUE FALSE TRUE
colnames(LowP) <- colnames(HighP)
colnames(LowP) %in% colnames(HighP)
## [1] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [16] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [31] TRUE TRUE
Pdata <- rbind(HighP, LowP)
head(Pdata)
Cool - let’s analyze the Pdata first - since this is something that I might be able to understand the easiest.
Since the data includes the replicates - we should first calculate the average per genotype on all of the numeric traits (we will deal with the categorical and vector traits later):
colnames(Pdata)
## [1] "ENTRY_TYPE" "Genotypes" "AccessionNO" "DFF"
## [5] "D50F" "DFMAT" "D95MAT" "Nbranch"
## [9] "Stand" "Pheight" "freshFodder_g" "DryFoddr_g"
## [13] "Seed_Weight_g" "Yield_kg_ha" "Pharvest" "Growth_ht"
## [17] "Pod_pigm" "PodLoad" "AphidIncidence" "No_thrips"
## [21] "Viral_incidence" "sdwt100" "Scab_leaves" "Scab_stem"
## [25] "Scab_peduncles" "Scab_pods" "Septoria" "Bblight"
## [29] "SeedColour" "Seedtexture" "EyeColour" "Treatment"
unique(Pdata$DFF)
## [1] "54" "56" "46" "47" "55" "53" "48" "50" "52" "62"
## [11] "51" "49" "43" "58" "44" "57" NA "40" "59" "41"
## [21] "66" "45" "60" "65" "94" "61" "63" "64" "92" "39"
## [31] "68" "69" "73" " NA" " NA" "70" "72" "37" "75" "67"
## [41] "78" "79" "71" "38" "76" "80" "74" "42" "84"
Pdata$DFF <- gsub("NA", NA, Pdata$DFF)
Pdata$DFF <- as.numeric(as.character(Pdata$DFF))
unique(Pdata$DFF)
## [1] 54 56 46 47 55 53 48 50 52 62 51 49 43 58 44 57 NA 40 59 41 66 45 60 65 94
## [26] 61 63 64 92 39 68 69 73 70 72 37 75 67 78 79 71 38 76 80 74 42 84
Pdata$D50F <- gsub("NA", NA, Pdata$D50F)
Pdata$D50F <- as.numeric(as.character(Pdata$D50F))
unique(Pdata$D50F)
## [1] 56 60 50 53 58 57 54 59 65 55 52 49 62 48 61 NA 51 46 72
## [20] 43 75 47 64 103 66 44 71 63 67 100 70 45 74 73 76 69 83 78
## [39] 68 97 79 80 88 87 81 77 90 86 84 89 95
Pdata$DFMAT <- gsub("NA", NA, Pdata$DFMAT)
Pdata$DFMAT <- as.numeric(as.character(Pdata$DFMAT))
unique(Pdata$DFMAT)
## [1] 71 69 61 65 74 64 77 72 66 63 62 60 68 70 38 NA 73 78 75
## [20] 83 97 58 39 76 96 59 87 56 82 95 80 79 55 84 85 86 89 81
## [39] 91 88 93 90 92 94 98 107 111 53 49
Pdata$D95MAT <- gsub("NA", NA, Pdata$D95MAT)
Pdata$D95MAT <- as.numeric(as.character(Pdata$D95MAT))
unique(Pdata$D95MAT)
## [1] 77 76 79 73 74 75 69 80 70 72 87 71 68 66 96 NA 81 82 78
## [20] 97 48 65 64 117 95 63 98 94 84 115 101 85 93 86 91 90 92 88
## [39] 131 89 105 129 132 83 116 99 130 108 106 100 103 124 102 126 133
Pdata$Nbranch <- gsub("NA", NA, Pdata$Nbranch)
Pdata$Nbranch <- as.numeric(as.character(Pdata$Nbranch))
unique(Pdata$Nbranch)
## [1] 4 2 7 3 5 6 NA 11 8 9 1
Pdata$Stand <- gsub("NA", NA, Pdata$Stand)
Pdata$Stand <- as.numeric(as.character(Pdata$Stand))
unique(Pdata$Stand)
## [1] 3 6 7 9 2 8 4 5 1 NA 10
Pdata$Pheight <- gsub("NA", NA, Pdata$Pheight)
Pdata$Pheight <- as.numeric(as.character(Pdata$Pheight))
unique(Pdata$Pheight)
## [1] 56.4 27.4 30.6 42.5 52.7 104.5 108.4 79.2 112.8 81.6 27.9 72.4
## [13] 46.7 40.6 43.5 47.9 61.5 56.8 54.9 72.9 29.5 59.6 32.7 109.5
## [25] 51.5 37.8 78.5 31.6 61.7 29.8 34.4 23.7 38.2 37.5 50.6 52.5
## [37] 47.5 56.2 29.4 51.4 37.4 28.5 41.4 55.7 49.6 42.4 46.8 21.5
## [49] 42.9 33.7 27.7 32.5 NA 54.4 52.8 32.6 52.4 39.4 55.3 18.4
## [61] 58.4 73.5 55.8 67.4 30.4 79.4 52.6 39.7 34.7 48.6 47.7 47.3
## [73] 69.4 66.3 49.5 72.5 87.5 45.7 46.3 60.5 57.5 35.7 41.5 52.9
## [85] 49.4 67.5 31.4 42.6 46.5 43.6 41.6 62.6 71.9 82.4 62.5 113.0
## [97] 26.6 112.6 53.5 71.3 28.0 99.5 42.8 23.8 40.4 26.8 69.5 72.7
## [109] 59.7 40.8 67.6 97.2 64.9 88.5 78.6 43.7 38.5 53.8 57.4 109.0
## [121] 54.3 51.6 101.4 81.5 23.6 19.4 33.2 76.4 47.4 88.4 64.6 32.4
## [133] 57.3 21.4 44.7 62.4 49.1 36.4 50.5 58.6 39.5 42.3 48.2 48.7
## [145] 70.5 48.8 130.4 62.7 64.8 24.6 41.8 34.5 30.5 64.5 33.5 28.4
## [157] 132.9 89.4 18.5 24.9 23.5 22.9 31.3 56.7 86.4 41.1 29.9 85.3
## [169] 78.8 59.5 35.5 71.5 106.4 72.6 22.4 37.7 61.8 47.6 36.8 79.3
## [181] 47.8 43.3 35.6 59.0 66.7 72.8 116.7 31.5 34.8 35.4 107.3 123.6
## [193] 142.5 39.6 127.3 35.9 67.9 76.3 51.9 31.9 61.6 37.3 31.7 68.5
## [205] 77.2 55.4 78.4 45.6 97.4 29.6 97.5 53.4 43.2 81.4 82.5 70.6
## [217] 22.5 24.5 48.5 76.9 42.7 77.4 27.8 19.5 44.6 27.5 54.8 162.4
## [229] 102.5 98.5 41.7 77.5 38.4 62.2 94.6 41.9 82.0 33.9 96.4 48.4
## [241] 36.7 121.4 53.2 57.8 74.9 70.7 20.6 21.9 56.3 40.5 58.5 47.2
## [253] 48.9 22.7 74.6 37.6 25.7 26.4 21.6 36.2 73.6 33.4 24.7 53.7
## [265] 110.3 63.7 36.6 27.3 34.6 63.5 78.9 59.4 17.9 49.7 112.5 43.4
## [277] 89.5 132.4 54.7 15.7 39.9 38.1 50.7 19.6 57.2 29.7 21.3 117.4
## [289] 53.6 31.8 61.4 90.5 33.6 103.0 106.0 65.3 32.8 22.8 63.6 35.2
## [301] 17.3 63.2 39.2 92.8 59.3 73.7 417.0 71.4 316.0 51.7 63.9 44.3
## [313] 71.6 46.6 62.8 51.3 19.0 18.6 102.0 26.7 13.3 24.8 17.4 32.3
## [325] 12.8 14.3 12.2 34.1 16.7 14.1 13.4 19.3 17.8 13.8 14.4 14.8
## [337] 14.7 13.2 11.1 14.5 13.9 12.1 14.6 16.9 9.9 27.6 22.2 13.5
## [349] 13.7 14.2 15.2 10.6 11.0 17.6 12.3 23.2 15.3 17.1 10.4 12.5
## [361] 21.7 30.3 16.8 20.2 30.0 13.0 12.4 11.6 19.2 16.3 14.9 18.8
## [373] 10.5 10.3 16.1 22.0 21.2 16.2 23.1 16.4 11.7 16.0 26.3 23.0
## [385] 20.3 20.4 26.0 26.9 12.6 24.2 19.7 13.6 18.1 9.8 14.0 71.1
## [397] 76.2 27.1 15.5 20.8 12.0 13.1 26.1 11.5 11.2 11.4 6.3 23.3
## [409] 17.7 16.6 11.9 32.9 31.2 10.9 12.7 17.2 16.5 26.2 25.1 22.3
## [421] 12.9 11.8 15.4 34.3 11.3 19.1 38.8 9.1 29.2 68.9 62.3 39.8
## [433] 10.2 15.8 24.0 28.2 8.7 20.9 23.4 9.3 9.7 24.4 69.6 36.3
## [445] 44.9 28.1 45.9 32.2 9.2 22.1 15.6 65.7 25.6 30.8 30.2 21.8
## [457] 22.6 19.9 28.7 36.0 21.1 24.3 18.3 28.6 20.7 15.0
Pdata$freshFodder_g <- gsub("NA", NA, Pdata$freshFodder_g)
Pdata$freshFodder_g <- as.numeric(as.character(Pdata$freshFodder_g))
unique(Pdata$freshFodder_g)
## [1] 239.40 279.00 308.80 104.50 259.20 211.50 352.10 107.90 243.90
## [10] 127.50 89.40 103.40 319.50 87.10 153.60 102.80 213.70 179.50
## [19] 323.30 79.10 348.50 97.10 231.30 73.40 198.40 92.80 274.50
## [28] 97.20 319.60 89.20 147.20 81.50 304.20 457.90 401.80 386.40
## [37] 120.10 321.20 111.80 389.40 126.40 197.40 143.70 543.90 253.30
## [46] 87.20 284.60 471.60 239.60 109.70 72.90 222.40 171.90 312.40
## [55] NA 284.30 90.10 201.50 305.60 78.40 251.90 96.40 206.70
## [64] 242.10 190.30 354.00 307.60 214.90 237.20 107.30 328.40 209.40
## [73] 371.70 117.30 184.90 114.60 295.40 121.70 289.50 109.20 237.70
## [82] 97.50 127.90 104.30 134.60 365.90 301.40 72.40 423.60 112.50
## [91] 349.50 57.60 341.20 98.20 327.40 97.40 142.00 332.50 74.60
## [100] 93.20 89.10 230.40 139.20 234.60 113.70 78.20 276.40 364.70
## [109] 112.30 106.70 231.80 412.10 230.10 297.60 342.90 238.90 193.40
## [118] 139.50 101.60 130.00 108.40 206.30 132.60 394.00 277.60 22.90
## [127] 122.40 218.30 232.50 348.90 101.90 201.20 407.20 393.20 361.90
## [136] 108.50 231.40 473.90 184.60 204.70 201.80 239.50 214.60 192.30
## [145] 113.40 174.60 347.20 85.60 192.40 236.40 102.40 342.60 82.10
## [154] 201.70 51.40 294.40 327.80 91.40 189.90 278.10 209.70 117.50
## [163] 258.40 84.30 321.40 259.10 406.50 98.10 221.50 207.40 245.30
## [172] 216.20 193.50 351.90 253.70 194.50 104.70 237.40 131.40 218.90
## [181] 204.20 235.40 376.30 240.80 89.70 145.20 112.40 94.20 79.20
## [190] 140.20 81.90 93.80 99.50 180.70 102.50 205.90 57.40 143.20
## [199] 231.70 353.40 41.60 310.60 98.60 352.40 232.10 63.10 344.60
## [208] 294.80 346.30 67.10 392.50 202.90 187.60 107.60 171.30 302.90
## [217] 101.40 53.10 73.50 285.40 162.30 184.20 126.50 128.30 231.60
## [226] 225.40 109.40 326.40 238.30 239.70 113.50 237.50 327.90 435.20
## [235] 362.90 273.70 254.20 305.10 241.70 322.80 264.90 178.30 142.50
## [244] 271.40 119.50 303.20 212.40 153.20 463.70 280.90 438.30 87.40
## [253] 197.60 307.00 248.20 108.60 207.30 221.40 117.60 261.10 375.50
## [262] 149.30 152.10 321.90 119.00 314.40 114.20 176.80 216.40 190.00
## [271] 42.60 189.70 299.70 254.00 81.70 147.30 96.30 302.70 386.70
## [280] 104.60 198.30 201.60 428.40 362.40 492.80 290.20 317.50 211.90
## [289] 482.10 101.50 127.20 572.80 97.30 183.10 372.10 134.20 78.80
## [298] 208.80 152.30 96.50 60.20 65.20 104.20 232.60 327.50 271.50
## [307] 127.00 127.60 372.50 102.60 372.80 172.40 263.60 146.10 204.50
## [316] 138.40 152.20 121.40 209.10 61.30 207.50 68.20 293.60 82.40
## [325] 321.00 279.60 404.40 375.90 211.60 112.70 263.10 207.20 219.90
## [334] 72.10 92.50 109.90 212.60 81.60 371.10 264.70 103.20 344.70
## [343] 120.70 281.40 101.80 342.70 364.00 99.10 239.00 200.40 78.30
## [352] 278.20 487.60 194.20 420.80 192.60 208.20 98.80 384.90 363.20
## [361] 319.40 142.60 75.90 78.10 200.10 217.60 275.60 73.20 172.60
## [370] 307.40 367.30 359.90 234.50 199.80 263.40 57.90 329.50 172.30
## [379] 317.30 169.50 273.40 120.00 301.90 336.90 205.80 410.60 225.60
## [388] 89.90 131.50 237.10 31.50 110.60 79.40 295.70 92.40 276.50
## [397] 192.90 114.50 204.30 548.10 374.90 238.50 328.50 123.00 231.50
## [406] 86.50 59.40 280.10 90.70 87.80 309.50 386.90 128.20 382.40
## [415] 102.10 328.60 352.50 294.30 52.90 397.70 91.70 286.50 82.30
## [424] 320.30 134.90 247.50 377.10 181.30 457.30 375.40 304.60 134.50
## [433] 322.70 437.30 78.50 438.20 80.60 437.70 113.80 208.50 130.40
## [442] 180.40 94.50 256.20 257.40 282.30 92.60 234.90 327.60 284.20
## [451] 563.40 300.50 121.60 403.20 352.00 214.80 263.20 372.30 79.50
## [460] 278.40 1210.80 411.70 117.10 102.90 129.30 187.40 169.30 344.80
## [469] 210.40 369.30 205.40 106.80 203.20 192.70 201.10 179.20 394.60
## [478] 249.60 164.00 81.20 249.50 93.40 372.40 70.80 253.40 101.30
## [487] 183.40 288.30 132.40 249.20 76.20 206.50 78.60 306.40 228.40
## [496] 109.30 286.30 262.40 215.30 241.10 225.30 273.50 225.20 56.30
## [505] 67.50 56.70 23.10 45.40 65.40 54.30 45.60 45.00 24.30
## [514] 45.80 67.80 67.30 34.70 34.50 64.10 34.20 54.60 68.50
## [523] 23.40 78.90 45.30 45.70 41.20 56.80 65.70 3.40 34.60
## [532] 45.20 89.50 24.50 53.50 12.60 86.30 74.30 91.30 24.20
## [541] 60.00 56.40 86.40 98.40 34.80 89.00 31.00 54.70 89.60
## [550] 23.50 41.40 67.90 62.40 74.20 32.40 56.60 71.40 55.40
## [559] 87.50 43.20 67.00 42.20 63.60 43.40 32.10 57.87 68.90
## [568] 63.20 54.40 67.40 45.10 89.30 84.20 68.40 35.70 46.78
## [577] 58.90 116.20 56.90 55.60 76.50 237.80 23.30 37.80 78.00
## [586] 58.20 87.60 54.10 56.50 62.50 46.30 98.70 70.60 12.30
## [595] 45.50 98.50 35.80 56.20 36.70 32.60 14.80 46.20 25.30
## [604] 98.00 94.70 34.00 46.80 24.60 82.50 46.40 76.30 23.20
## [613] 42.30 65.30 90.90 68.00 74.90 43.10 67.70 90.30 54.20
## [622] 76.40 54.50 56.43 87.30 95.20 61.20 72.60 7.00 97.90
## [631] 26.80 52.10 32.50 86.90 35.50 87.90 53.40 68.70 35.60
## [640] 42.40 120.40 61.60 85.40 28.40 13.40 21.00 73.70 65.80
## [649] 25.60 47.20 36.40 48.80 67.60 130.60 34.40 236.00 56.10
## [658] 75.80 35.20 85.20 56.00 46.70 35.30
Pdata$DryFoddr_g <- gsub("NA", NA, Pdata$DryFoddr_g)
Pdata$DryFoddr_g <- as.numeric(as.character(Pdata$DryFoddr_g))
unique(Pdata$DryFoddr_g)
## [1] 109.2 139.2 280.2 346.1 174.2 98.4 230.7 97.3 367.1 255.1 71.6 161.3
## [13] 266.4 152.9 120.4 174.6 156.3 197.5 216.4 170.5 142.5 185.3 203.4 105.6
## [25] 191.2 211.9 186.6 261.5 149.2 243.5 141.2 139.5 242.1 164.7 84.0 178.6
## [37] 274.3 216.2 147.2 248.5 233.9 121.6 150.2 179.1 100.6 236.4 198.0 136.2
## [49] 200.7 241.7 192.3 137.4 159.4 181.6 215.4 302.5 234.3 NA 267.1 40.8
## [61] 182.3 217.3 183.4 110.8 189.5 195.3 170.9 163.0 70.5 239.2 132.2 265.4
## [73] 185.6 267.4 201.2 139.4 218.2 108.4 156.2 146.4 220.6 288.1 215.3 208.4
## [85] 173.2 231.6 188.6 218.3 217.9 223.4 97.2 372.4 228.1 142.4 178.2 311.2
## [97] 159.3 198.2 200.1 247.3 269.7 277.3 126.4 127.1 204.6 254.1 163.5 31.2
## [109] 91.2 94.7 130.4 246.5 260.1 264.5 300.5 100.5 129.1 305.4 231.4 214.8
## [121] 298.7 214.6 213.6 158.3 259.3 228.4 125.4 139.8 153.1 213.2 303.1 207.6
## [133] 55.3 126.0 147.5 262.1 167.4 100.2 342.1 143.8 190.2 47.8 202.9 224.6
## [145] 271.5 165.4 164.6 298.5 170.3 219.4 96.0 364.1 220.3 75.2 282.3 12.6
## [157] 120.6 65.2 167.2 205.6 236.7 153.4 185.7 138.2 202.3 143.5 123.8 184.4
## [169] 169.7 357.5 241.2 164.2 105.9 176.2 158.4 107.2 179.2 218.4 190.7 193.4
## [181] 144.2 220.7 211.1 52.4 380.5 192.8 166.4 147.8 156.4 76.4 115.3 196.4
## [193] 131.3 178.4 111.2 74.6 157.4 121.5 141.6 111.4 96.2 170.6 151.2 72.1
## [205] 207.5 189.3 270.1 144.5 206.4 275.2 205.4 214.9 224.9 154.2 344.1 104.6
## [217] 128.3 103.4 130.2 215.0 163.4 137.2 198.5 162.2 195.6 233.5 119.8 381.7
## [229] 194.2 168.2 203.1 131.4 106.2 105.4 162.5 229.1 118.4 254.2 237.9 184.2
## [241] 310.1 314.8 197.6 214.3 209.4 272.6 138.1 248.7 304.0 49.2 222.4 394.2
## [253] 38.5 312.4 268.3 177.6 57.2 17.2 76.3 187.9 172.1 86.9 131.2 91.7
## [265] 150.3 250.4 132.4 275.4 219.5 41.6 190.4 320.4 283.6 196.2 125.5 304.1
## [277] 63.1 178.5 226.4 257.6 159.2 160.7 288.9 142.8 220.1 252.1 112.6 130.5
## [289] 239.1 263.4 437.2 294.2 164.3 207.0 244.5 92.8 166.2 179.6 102.4 66.2
## [301] 106.4 126.3 47.5 100.8 4.8 27.5 323.1 244.6 225.9 165.8 227.6 140.9
## [313] 161.7 33.1 223.7 228.3 90.2 136.4 51.2 115.7 273.1 253.1 150.4 111.1
## [325] 120.2 191.5 160.5 135.1 205.3 92.2 153.5 158.8 174.0 195.4 76.2 84.2
## [337] 324.6 111.5 212.3 171.3 207.2 244.7 254.3 249.2 178.3 173.5 350.4 64.1
## [349] 197.1 195.2 283.4 172.8 268.1 298.4 53.6 131.9 144.6 177.2 144.9 236.1
## [361] 197.2 80.2 160.6 192.6 268.2 203.5 142.6 198.4 321.4 281.6 265.2 213.7
## [373] 309.4 130.6 237.2 387.5 351.9 204.8 185.4 295.8 220.5 199.8 268.4 376.4
## [385] 208.3 186.3 40.2 116.4 35.8 68.3 166.7 85.2 43.2 112.2 168.4 59.4
## [397] 172.2 186.2 215.8 159.7 206.9 193.1 211.6 177.3 235.6 223.1 180.0 232.5
## [409] 74.1 211.4 207.1 140.6 276.1 192.4 321.3 185.9 206.1 225.4 296.7 182.4
## [421] 428.6 245.3 101.2 151.6 210.5 216.5 147.6 276.2 155.7 229.4 151.4 231.2
## [433] 161.6 222.5 116.5 269.8 127.5 135.2 95.3 77.6 293.1 180.3 242.5 177.9
## [445] 155.4 187.2 184.5 186.1 149.5 169.4 246.8 174.5 238.1 194.8 181.3 221.5
## [457] 228.6 218.5 345.6 222.3 156.1 307.5 183.2 122.4 125.8 224.1 261.2 274.5
## [469] 277.9 117.6 91.4 118.2 169.2 134.2 423.2 396.4 251.7 255.4 232.4 172.9
## [481] 90.4 133.5 143.2 200.5 183.5 282.4 184.0 151.3 232.6 174.3 95.1 211.7
## [493] 138.4 218.6 8.8 82.1 23.5 58.8 14.7 26.7 5.7 16.4 57.4 27.3
## [505] 13.4 38.9 73.3 27.9 32.4 19.7 24.6 85.8 20.4 62.6 26.4 15.6
## [517] 24.4 59.6 28.7 19.5 36.7 13.6 7.4 34.5 97.4 88.6 11.6 12.8
## [529] 43.8 49.3 30.7 31.3 64.6 28.4 23.9 13.7 16.3 16.8 56.6 9.8
## [541] 34.0 29.6 20.6 42.9 142.2 23.0 22.3 31.8 66.0 58.5 38.8 36.3
## [553] 26.1 47.4 23.7 70.8 81.7 63.3 12.7 98.5 61.8 14.6 4.7 26.6
## [565] 33.9 96.8 105.2 15.3 20.5 24.8 70.7 5.5 55.6 13.5 7.1 14.0
## [577] 28.8 66.9 52.5 56.7 50.3 41.7 37.6 50.4 25.5 81.8 7.5 51.6
## [589] 16.7 10.4 22.9 46.3 52.9 21.8 12.2 62.4 37.8 51.0 15.8 52.8
## [601] 85.6 51.4 46.7 54.8 39.0 32.0 12.4 99.6 79.4 68.8 95.7 13.8
## [613] 45.6 7.7 18.7 87.9 24.0 41.4 28.5 60.9 50.6 125.6 78.9 34.9
## [625] 5.8 51.9 49.4 21.0 17.3 87.1 36.5 31.4 8.4 30.9 32.8 45.3
## [637] 25.7 21.3 35.7 36.0 52.3 38.6 19.4 52.7 34.6 52.6 44.6 40.5
## [649] 65.4 43.3 41.8 39.6 76.7 29.4 78.4 19.6 26.5 18.3 86.4 75.5
## [661] 17.8 94.6 14.3 49.6 48.9 24.9 6.6 34.7 20.0 10.2 30.4 16.6
## [673] 22.8 42.4 9.5 44.7 83.9 36.9 66.6 15.9 7.2 11.9 24.5 47.6
## [685] 34.4 19.8 11.3 16.5 8.9 129.6 23.8 66.5 7.3 89.7 17.4 84.1
## [697] 14.9 176.1 28.9 39.7 54.9 89.4 167.8 88.7 84.6 21.4 33.2 11.5
## [709] 7.8 14.8 32.1 29.3 60.3 4.0 55.7 65.3 68.2 64.4 12.5 30.5
## [721] 42.0 115.4 30.6 10.7 4.6 73.8 67.7 48.8 140.4 53.4 56.4 26.9
## [733] 48.0 32.7 96.4 80.3 18.8 74.4 27.6 15.5 33.7 45.2 39.8 12.9
## [745] 17.6 54.0 15.7 6.8 5.1 83.4 21.6 12.0 4.5 3.8 24.3 11.8
## [757] 69.6 2.4 61.9 27.8 40.4 22.6 8.6 83.8 53.7 47.9 10.0 41.3
## [769] 13.2 76.6 60.6 5.4 23.4 18.5 56.0 87.4 25.6 21.2 29.8 63.8
## [781] 45.8 17.5 43.6 68.9 104.4 51.8 63.4 38.7 17.1 42.3 33.4 3.9
## [793] 41.5 85.1 6.4 22.2 32.5 66.4 119.9 37.3 25.1 44.8 72.4 22.7
## [805] 20.7 24.7 59.3 104.7 66.3 19.0 5.9 7.6 133.6 54.7 42.6 91.9
## [817] 43.5 18.4 11.4 14.5 56.8 63.2 148.8 20.9 74.7 61.3 57.8 15.0
## [829] 35.6 40.3 9.4 71.7 4.2 30.0 91.5 69.2 107.6 37.5 33.8 60.7
## [841] 68.4 74.9 82.3 27.0 25.8 54.1 24.2 50.8 37.9 40.6 50.9 104.5
## [853] 8.3 29.1 31.7 52.1 9.9 10.5 97.8 46.5 42.7 83.6 19.9 78.8
## [865] 73.6 25.2 7.9 58.3 53.9 46.4 18.9 76.1 58.4 9.1 16.9 76.8
## [877] 27.4 24.1 31.5
Pdata$Seed_Weight_g <- gsub("NA", NA, Pdata$Seed_Weight_g)
Pdata$Seed_Weight_g <- as.numeric(as.character(Pdata$Seed_Weight_g))
unique(Pdata$Seed_Weight_g)
## [1] 74.9 101.7 NA 176.1 137.4 73.2 166.4 50.1 287.3 180.3 55.7 129.3
## [13] 217.3 118.7 90.5 135.4 118.6 137.5 164.1 120.9 53.4 154.7 156.3 86.3
## [25] 159.2 162.3 117.1 196.0 110.4 174.3 114.6 111.8 182.1 109.0 47.7 95.2
## [37] 125.7 206.0 178.2 120.8 178.4 95.7 112.7 133.4 81.7 167.3 152.6 109.6
## [49] 126.8 184.3 134.4 105.2 122.7 120.6 151.8 219.0 176.7 21.2 127.3 165.3
## [61] 123.2 79.3 141.3 160.8 117.4 137.2 114.5 41.1 182.6 83.4 196.1 113.6
## [73] 191.2 164.2 100.4 187.4 72.4 116.3 200.9 170.1 221.0 157.9 160.3 169.6
## [85] 128.5 144.5 173.4 149.0 61.6 270.2 180.0 85.8 187.1 247.1 106.8 157.1
## [97] 140.3 192.7 238.2 207.1 132.7 91.6 142.7 200.7 17.4 51.2 75.3 268.4
## [109] 85.3 192.2 206.8 95.4 235.1 74.6 100.9 242.6 188.9 229.1 149.3 183.2
## [121] 126.1 215.9 108.4 162.7 97.3 105.6 107.2 135.2 244.1 147.4 106.7 90.8
## [133] 102.3 199.0 121.3 78.1 77.4 299.1 130.9 147.2 36.7 131.6 147.1 171.3
## [145] 216.2 128.2 129.4 219.8 148.3 167.2 68.3 198.7 266.6 151.7 42.1 132.2
## [157] 4.3 96.0 50.2 181.2 128.6 168.2 193.9 121.4 135.7 103.2 146.8 78.3
## [169] 86.2 142.1 135.3 274.1 214.3 112.5 82.3 131.2 122.3 84.6 128.7 163.4
## [181] 202.3 134.0 151.2 109.2 170.2 167.1 156.6 23.5 225.2 155.9 211.6 126.9
## [193] 68.5 53.3 95.3 105.4 93.4 144.6 124.6 51.4 114.2 90.3 102.7 71.4
## [205] 141.1 111.3 59.3 157.2 98.2 101.6 211.1 112.9 204.0 152.4 166.8 175.4
## [217] 185.6 144.1 107.3 264.2 72.1 59.7 64.2 223.1 188.6 107.7 158.2 146.2
## [229] 110.6 130.7 204.6 87.2 139.4 140.5 149.2 250.5 103.8 76.1 85.5 156.2
## [241] 85.1 190.4 212.7 133.9 255.1 222.3 250.6 145.9 162.2 103.7 141.0 200.6
## [253] 132.3 119.2 111.6 169.7 251.3 21.3 29.6 286.0 104.3 14.6 233.2 200.1
## [265] 88.2 39.0 7.6 92.4 60.1 84.8 116.5 62.0 151.4 126.7 206.1 102.6
## [277] 129.8 162.6 174.0 92.6 23.9 156.7 176.4 219.2 77.9 127.4 135.5 286.2
## [289] 211.3 51.3 157.0 205.8 140.6 112.8 161.6 91.4 98.4 72.5 197.5 201.2
## [301] 339.2 221.2 110.2 142.4 189.1 86.4 118.2 132.8 21.4 83.7 63.4 66.7
## [313] 74.4 82.8 42.6 70.5 2.1 48.8 249.5 177.8 194.3 116.7 110.0 102.9
## [325] 110.7 187.9 157.6 154.2 61.2 89.4 203.2 61.4 192.4 120.1 55.2 80.2
## [337] 98.7 118.9 107.1 93.8 56.7 121.0 200.3 113.2 132.6 145.1 84.0 62.1
## [349] 259.3 187.2 145.7 136.0 183.6 200.0 148.4 127.2 126.3 276.5 127.1 123.1
## [361] 70.8 232.0 125.2 248.6 193.4 214.8 158.4 104.6 222.2 98.3 102.1 117.7
## [373] 109.9 178.8 106.6 231.8 154.6 101.3 107.9 255.3 179.0 193.2 236.3 215.6
## [385] 87.4 157.3 300.6 118.3 263.7 159.4 164.3 146.7 226.3 156.5 140.1 178.0
## [397] 195.2 123.4 158.6 134.6 14.3 123.3 82.0 76.2 120.3 28.2 38.4 124.5
## [409] 136.1 130.4 138.4 153.1 145.6 188.2 188.7 48.7 156.9 100.6 209.1 152.3
## [421] 127.7 132.1 150.0 171.6 252.2 324.2 194.6 20.6 163.9 103.0 190.7 127.6
## [433] 188.4 173.9 199.7 179.7 126.4 185.3 91.7 80.7 62.3 229.6 125.1 116.8
## [445] 186.8 141.2 115.3 148.1 144.3 138.0 104.2 111.7 191.3 112.4 191.8 94.1
## [457] 115.5 143.4 173.7 277.2 154.1 155.2 247.8 175.9 172.3 87.7 99.1 160.7
## [469] 197.8 197.1 94.3 81.2 187.6 75.8 84.4 104.5 134.2 165.4 294.9 124.3
## [481] 142.0 135.0 85.9 143.2 143.7 218.2 181.3 155.0 113.3 151.6 165.7 100.1
## [493] 34.0 19.3 32.0 11.6 17.0 4.6 12.3 33.3 13.0 82.4 11.0 36.9
## [505] 23.4 18.0 16.0 20.3 70.3 9.0 52.6 19.0 47.1 23.7 11.3 25.0
## [517] 11.9 27.0 6.0 26.3 49.0 62.6 8.3 10.4 23.0 24.0 24.2 20.0
## [529] 45.1 14.0 12.5 18.2 7.8 14.1 17.3 40.8 8.6 8.0 31.9 47.0
## [541] 28.7 42.0 43.9 53.0 29.8 19.6 29.0 17.9 31.3 13.3 37.0 61.3
## [553] 15.0 21.0 11.5 2.0 20.9 80.6 98.0 17.8 12.1 9.6 4.0 5.6
## [565] 35.0 38.6 21.6 5.8 3.0 12.0 43.6 6.6 36.0 15.6 7.0 12.8
## [577] 31.0 30.3 42.5 37.3 38.7 41.0 44.3 24.4 10.5 64.6 55.4 52.0
## [589] 7.4 41.4 12.6 17.6 32.6 24.5 44.5 87.3 4.1 35.7 46.0 22.3
## [601] 6.3 34.6 10.0 15.9 27.1 193.0 9.8 12.9 24.3 13.6 31.1 9.2
## [613] 7.3 34.8 25.3 108.8 78.5 32.9 8.4 27.9 39.2 19.1 5.3 14.9
## [625] 20.4 12.7 20.2 6.2 71.2 93.0 62.4 25.6 26.0 20.1 16.5 51.0
## [637] 17.7 62.5 10.2 94.0 19.2 72.0 24.8 28.0 24.6 40.6 39.7 69.4
## [649] 4.7 2.9 44.7 38.1 13.4 55.5 27.3 22.6 87.0 25.7 3.9 38.0
## [661] 57.6 5.7 16.6 22.9 104.0 39.5 34.5 29.2 22.7 29.4 62.7 16.7
## [673] 66.4 34.2 26.7 56.0 9.4 16.4 5.9 21.1 65.3 55.6 29.5 19.9
## [685] 46.9 11.1 18.6 19.4 13.5 18.5 5.1 18.3 13.2 14.8 91.0 39.3
## [697] 40.3 48.3 26.9 78.4 14.7 15.8 3.3 38.3 30.1 6.8 17.1 33.0
## [709] 16.9 50.0 101.2 19.5 5.2 22.0 35.3 36.8 15.1 32.1 2.5 103.9
## [721] 18.4 36.4 9.3 32.8 10.8 26.4 21.5 30.0 117.6 16.2 74.0 41.2
## [733] 28.5 27.5 18.1 9.1 23.8 25.8 22.5 60.5 39.1 68.9 52.9 39.4
## [745] 37.9 97.0 49.2 40.0 15.2 21.8 37.5 33.6 39.8 27.2 41.6 6.9
## [757] 10.1 5.0 32.4 48.0 33.9 9.5 16.8 46.2 27.8
Pdata$Yield_kg_ha <- gsub("NA", NA, Pdata$Yield_kg_ha)
Pdata$Yield_kg_ha <- as.numeric(as.character(Pdata$Yield_kg_ha))
unique(Pdata$Yield_kg_ha)
## [1] 998.4 1355.7 NA 2347.4 1831.5 975.8 2218.1 667.8 3829.7 2403.4
## [11] 742.5 1723.6 2896.6 1582.3 1206.4 1804.9 1580.9 1832.9 2187.5 1611.6
## [21] 711.8 2062.2 2083.5 1150.4 2122.1 2163.5 1560.9 2612.7 1471.6 2323.4
## [31] 1527.6 1490.3 2427.4 1453.0 635.8 1269.0 1675.6 2746.0 2375.4 1610.3
## [41] 2378.1 1275.7 1502.3 1778.2 1089.1 2230.1 2034.2 1461.0 1690.2 2456.7
## [51] 1791.6 1402.3 1635.6 1607.6 2023.5 2919.3 2355.4 282.6 1696.9 2203.4
## [61] 1642.3 1057.1 1883.5 2143.5 1564.9 1828.9 1526.3 547.9 2434.1 1111.7
## [71] 2614.0 1514.3 2548.7 2188.8 1338.3 2498.0 965.1 1550.3 2678.0 2267.4
## [81] 2945.9 2104.8 2136.8 2260.8 1712.9 1926.2 2311.4 1986.2 821.1 3601.8
## [91] 2399.4 1143.7 2494.0 3293.8 1423.6 2094.1 1870.2 2568.7 3175.2 2760.6
## [101] 1768.9 1221.0 1902.2 2675.3 231.9 682.5 1003.7 3577.8 1137.0 2562.0
## [111] 2756.6 1271.7 3133.9 994.4 1345.0 3233.9 2518.0 3053.9 1990.2 2442.1
## [121] 1680.9 2877.9 1445.0 2168.8 1297.0 1407.6 1429.0 1802.2 3253.9 1964.8
## [131] 1422.3 1210.4 1363.7 2652.7 1616.9 1041.1 1031.7 3987.0 1744.9 1962.2
## [141] 489.2 1754.2 1960.8 2283.4 2881.9 1708.9 1724.9 2929.9 1976.8 2228.8
## [151] 910.4 2648.7 3553.8 2022.2 561.2 1762.2 57.3 1279.7 669.2 2415.4
## [161] 1714.2 2242.1 2584.7 1618.3 1808.9 1375.7 1956.8 1043.7 1149.0 1894.2
## [171] 1803.5 3653.8 2856.6 1499.6 1097.1 1748.9 1630.3 1127.7 1715.6 2178.1
## [181] 2696.7 1786.2 2015.5 1455.6 2268.8 2227.4 2087.5 313.3 3001.9 2078.1
## [191] 2820.6 1691.6 913.1 710.5 1270.3 1405.0 1245.0 1927.5 1660.9 685.2
## [201] 1522.3 1203.7 1369.0 951.8 1880.9 1483.6 790.5 2095.5 1309.0 1354.3
## [211] 2814.0 1505.0 2719.3 2031.5 2223.4 2338.1 2474.0 1920.9 1430.3 3521.8
## [221] 961.1 795.8 855.8 2973.9 2514.0 1435.6 2108.8 1948.8 1474.3 1742.2
## [231] 2727.3 1162.4 1858.2 1872.9 1988.8 3339.2 1383.7 1014.4 1139.7 2082.1
## [241] 1134.4 2538.0 2835.3 1784.9 3400.5 2963.3 3340.5 1944.8 2162.1 1382.3
## [251] 1879.5 2674.0 1763.6 1588.9 1487.6 2262.1 3349.8 283.9 394.6 3812.4
## [261] 1390.3 194.6 3108.6 2667.3 1175.7 519.9 101.3 1231.7 801.1 1130.4
## [271] 1552.9 826.5 2018.2 1688.9 2747.3 1367.7 1730.2 2167.5 2319.4 1234.4
## [281] 318.6 2088.8 2351.4 2921.9 1038.4 1698.2 1806.2 3815.0 2816.6 683.8
## [291] 2092.8 2743.3 1874.2 1503.6 2154.1 1218.4 1311.7 966.4 2632.7 2682.0
## [301] 4521.5 2948.6 1469.0 1898.2 2520.7 1151.7 1575.6 1770.2 285.3 1115.7
## [311] 845.1 889.1 991.8 1103.7 567.9 939.8 28.0 650.5 3325.8 2370.1
## [321] 2590.0 1555.6 1466.3 1371.7 1475.6 2504.7 2100.8 2055.5 815.8 1191.7
## [331] 2708.7 818.5 2564.7 1600.9 735.8 1069.1 1315.7 1584.9 1427.6 1250.4
## [341] 755.8 1612.9 2670.0 1509.0 1767.6 1934.2 1119.7 827.8 3456.5 2495.4
## [351] 1942.2 1812.9 2447.4 2666.0 1978.2 1695.6 1683.6 3685.7 1694.2 1640.9
## [361] 943.8 3092.6 1668.9 3313.8 2578.0 2863.3 2111.5 1394.3 2961.9 1310.3
## [371] 1361.0 1568.9 1465.0 2383.4 1421.0 3089.9 2060.8 1350.3 1438.3 3403.1
## [381] 2386.1 2575.4 3149.9 2873.9 1165.0 2096.8 4007.0 1576.9 3515.1 2124.8
## [391] 2190.1 1955.5 3016.6 2086.1 1867.5 2372.7 2602.0 1644.9 2114.1 1794.2
## [401] 190.6 1643.6 1093.1 1015.7 1603.6 375.9 511.9 1659.6 1814.2 1738.2
## [411] 1844.9 2040.8 1940.8 2508.7 2515.4 649.2 2091.5 1341.0 2787.3 2030.2
## [421] 1702.2 1760.9 1999.5 2287.4 3361.8 4321.6 2594.0 274.6 2184.8 1373.0
## [431] 2542.0 1700.9 2511.4 2318.1 2662.0 2395.4 1684.9 2470.0 1222.4 1075.7
## [441] 830.5 3060.6 1667.6 1556.9 2490.0 1882.2 1536.9 1974.2 1923.5 1839.5
## [451] 1389.0 1489.0 2550.0 1498.3 2556.7 1254.4 1539.6 1911.5 2315.4 3695.1
## [461] 2054.2 2068.8 3303.2 2344.7 2296.8 1169.0 1321.0 2142.1 2636.7 2627.3
## [471] 1257.0 1082.4 2500.7 1010.4 1125.1 1393.0 1788.9 2204.8 3931.0 1656.9
## [481] 1892.9 1799.6 1145.0 1908.9 1915.5 2908.6 2416.7 2066.2 1510.3 2020.8
## [491] 2208.8 1334.3 453.2 257.3 426.6 154.6 226.6 61.3 164.0 443.9
## [501] 173.3 1098.4 146.6 491.9 311.9 239.9 213.3 270.6 937.1 120.0
## [511] 701.2 253.3 627.8 315.9 150.6 333.3 158.6 359.9 80.0 350.6
## [521] 653.2 834.5 110.6 138.6 306.6 319.9 322.6 266.6 601.2 186.6
## [531] 166.6 242.6 104.0 188.0 230.6 543.9 114.6 106.6 425.2 626.5
## [541] 382.6 559.9 585.2 706.5 397.2 261.3 386.6 238.6 417.2 177.3
## [551] 493.2 817.1 200.0 279.9 153.3 26.7 278.6 1074.4 1306.3 237.3
## [561] 161.3 128.0 53.3 74.6 466.6 514.5 287.9 77.3 40.0 160.0
## [571] 581.2 88.0 479.9 207.9 93.3 170.6 413.2 403.9 566.5 497.2
## [581] 515.9 546.5 590.5 325.3 140.0 861.1 738.5 693.2 98.6 551.9
## [591] 168.0 234.6 434.6 326.6 593.2 1163.7 54.7 475.9 613.2 297.3
## [601] 84.0 461.2 133.3 211.9 361.2 2572.7 130.6 172.0 323.9 181.3
## [611] 414.6 122.6 97.3 463.9 337.2 1450.3 1046.4 438.6 112.0 371.9
## [621] 522.5 254.6 70.6 198.6 271.9 169.3 269.3 82.6 949.1 1239.7
## [631] 831.8 341.2 346.6 267.9 219.9 679.8 235.9 833.1 136.0 1253.0
## [641] 255.9 959.8 330.6 373.2 327.9 541.2 529.2 925.1 62.7 38.7
## [651] 595.9 507.9 178.6 739.8 363.9 301.3 1159.7 342.6 52.0 506.5
## [661] 767.8 76.0 221.3 305.3 1386.3 526.5 459.9 389.2 302.6 391.9
## [671] 835.8 222.6 885.1 455.9 355.9 746.5 125.3 218.6 78.6 281.3
## [681] 870.4 741.1 393.2 265.3 625.2 148.0 247.9 258.6 180.0 246.6
## [691] 68.0 243.9 176.0 197.3 1213.0 523.9 537.2 643.8 358.6 1045.1
## [701] 196.0 210.6 44.0 510.5 401.2 90.6 227.9 439.9 225.3 666.5
## [711] 1349.0 259.9 69.3 293.3 470.5 490.5 201.3 427.9 33.3 1385.0
## [721] 245.3 485.2 124.0 437.2 144.0 351.9 286.6 399.9 1567.6 215.9
## [731] 986.4 549.2 379.9 366.6 241.3 121.3 317.3 343.9 299.9 806.5
## [741] 521.2 918.4 705.2 525.2 505.2 1293.0 655.8 533.2 202.6 290.6
## [751] 499.9 447.9 530.5 362.6 554.5 92.0 134.6 66.7 431.9 639.8
## [761] 451.9 126.6 223.9 615.8 370.6
Pdata$Pharvest <- gsub("NA", NA, Pdata$Pharvest)
Pdata$Pharvest <- as.numeric(as.character(Pdata$Pharvest))
unique(Pdata$Pharvest)
## [1] 3 6 7 9 2 8 4 5 1 NA 10
Pdata$PodLoad <- gsub("NA", NA, Pdata$PodLoad)
Pdata$PodLoad <- as.numeric(as.character(Pdata$PodLoad))
unique(Pdata$PodLoad)
## [1] 2 3 1 NA 4
Pdata$AphidIncidence <- gsub("NA", NA, Pdata$AphidIncidence)
Pdata$AphidIncidence <- as.numeric(as.character(Pdata$AphidIncidence))
unique(Pdata$AphidIncidence)
## [1] 0 4 2 1 3 NA
Pdata$No_thrips <- gsub("NA", NA, Pdata$No_thrips)
Pdata$No_thrips <- as.numeric(as.character(Pdata$No_thrips))
unique(Pdata$No_thrips)
## [1] 4 7 0 6 3 8 1 5 2 9 NA 11
Pdata$Viral_incidence <- gsub("NA", NA, Pdata$Viral_incidence)
Pdata$Viral_incidence <- as.numeric(as.character(Pdata$Viral_incidence))
unique(Pdata$Viral_incidence)
## [1] 0 1 NA
Pdata$sdwt100 <- gsub("NA", NA, Pdata$sdwt100)
Pdata$sdwt100 <- as.numeric(as.character(Pdata$sdwt100))
## Warning: NAs introduced by coercion
unique(Pdata$sdwt100)
## [1] 32 26 21 19 24 33 36 29 27 20 30 31 28 15 14 18 13 25 22 17 23 NA 39 11 16
## [26] 34 12 38 35 41 40 37 9 46 43 44 42 8 7 10 50 85 48 67 6 4 83
Pdata$Scab_leaves <- gsub("NA", NA, Pdata$Scab_leaves)
Pdata$Scab_leaves <- as.numeric(as.character(Pdata$Scab_leaves))
unique(Pdata$Scab_leaves)
## [1] 20 40 0 NA 80 60 2
Pdata$Scab_stem <- gsub("NA", NA, Pdata$Scab_stem)
Pdata$Scab_stem <- as.numeric(as.character(Pdata$Scab_stem))
unique(Pdata$Scab_stem)
## [1] 20 60 0 40 NA 80 2
Pdata$Scab_peduncles <- gsub("NA", NA, Pdata$Scab_peduncles)
Pdata$Scab_peduncles <- as.numeric(as.character(Pdata$Scab_peduncles))
unique(Pdata$Scab_peduncles)
## [1] 60 20 0 40 NA 2
Pdata$Scab_pods <- gsub("NA", NA, Pdata$Scab_pods)
Pdata$Scab_pods <- as.numeric(as.character(Pdata$Scab_pods))
unique(Pdata$Scab_pods)
## [1] 0 20 NA 2 60 40
Pdata$Septoria <- gsub("NA", NA, Pdata$Septoria)
Pdata$Septoria <- as.numeric(as.character(Pdata$Septoria))
unique(Pdata$Septoria)
## [1] 40 60 20 0 80 NA 2
Pdata$Bblight <- gsub("NA", NA, Pdata$Bblight)
Pdata$Bblight <- as.numeric(as.character(Pdata$Bblight))
unique(Pdata$Bblight)
## [1] 50 25 0 75 NA
Pdata$AccessionNO <- as.factor(Pdata$AccessionNO)
Pdata$Treatment <- as.factor(Pdata$Treatment)
head(Pdata)
OK - finally - let’s calculate average values per accessions:
library(tidyverse)
## ── Attaching packages ─────────────────────────────────────── tidyverse 1.3.1 ──
## ✓ ggplot2 3.3.5 ✓ purrr 0.3.4
## ✓ tibble 3.1.6 ✓ dplyr 1.0.7
## ✓ tidyr 1.1.4 ✓ stringr 1.4.0
## ✓ readr 2.1.0 ✓ forcats 0.5.1
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## x dplyr::filter() masks stats::filter()
## x dplyr::lag() masks stats::lag()
library(broom)
library(knitr)
sum_df <- Pdata %>%
group_by(Treatment, AccessionNO) %>%
summarize(DFF_mean = mean(DFF), D50F_mean = mean(D50F), DFMAT_mean = mean(DFMAT), D95MAT_mean = mean(D95MAT),
Nbranch_mean = mean(Nbranch), Stand_mean = mean(Stand), Pheight_mean = mean(Pheight), freshFodder_g_mean = mean(freshFodder_g),
DryFoddr_g_mean = mean(DryFoddr_g), Seed_Weight_g_mean = mean(Seed_Weight_g), Yield_kg_ha_mean = mean(Yield_kg_ha), Pharvest_mean = mean(Pharvest),
PodLoad_mean = mean(PodLoad), AphidIncidence_mean = mean(AphidIncidence), No_thrips_mean = mean(No_thrips),
Viral_incidence_mean = mean(Viral_incidence), sdwt100_mean = mean(sdwt100), Scab_leaves_mean = mean(Scab_leaves), Scab_stem_mean = mean(Scab_stem),
Scab_peduncles_mean = mean(Scab_peduncles), Scab_pods_mean = mean(Scab_pods), DFF_mean = mean(DFF), Septoria_mean = mean(Septoria),
Bblight_mean = mean(Bblight))
## `summarise()` has grouped output by 'Treatment'. You can override using the `.groups` argument.
sum_df
Now - let’s plot the data:
library(ggplot2)
library(ggpubr)
DFF_histo <- gghistogram(sum_df, x = "DFF_mean",
add = "mean", rug = TRUE,
color = "Treatment", fill = "Treatment",
palette = c("#00AFBB", "#E7B800")) + xlab("days to first flowering")
## Warning: Using `bins = 30` by default. Pick better value with the argument
## `bins`.
DFF_histo
## Warning: Removed 26 rows containing non-finite values (stat_bin).
D50F_histo <- gghistogram(sum_df, x = "D50F_mean",
add = "mean", rug = TRUE,
color = "Treatment", fill = "Treatment",
palette = c("#00AFBB", "#E7B800")) + xlab("days to 50% flowering")
## Warning: Using `bins = 30` by default. Pick better value with the argument
## `bins`.
D50F_histo
## Warning: Removed 26 rows containing non-finite values (stat_bin).
DFMAT_histo <- gghistogram(sum_df, x = "DFMAT_mean",
add = "mean", rug = TRUE,
color = "Treatment", fill = "Treatment",
palette = c("#00AFBB", "#E7B800")) + xlab("days to first maturing pod")
## Warning: Using `bins = 30` by default. Pick better value with the argument
## `bins`.
DFMAT_histo
## Warning: Removed 26 rows containing non-finite values (stat_bin).
D95MAT_histo <- gghistogram(sum_df, x = "D95MAT_mean",
add = "mean", rug = TRUE,
color = "Treatment", fill = "Treatment",
palette = c("#00AFBB", "#E7B800")) + xlab("days to 95% pod maturity")
## Warning: Using `bins = 30` by default. Pick better value with the argument
## `bins`.
D95MAT_histo
## Warning: Removed 25 rows containing non-finite values (stat_bin).
Nbranch_histo <- gghistogram(sum_df, x = "Nbranch_mean",
add = "mean", rug = TRUE,
color = "Treatment", fill = "Treatment",
palette = c("#00AFBB", "#E7B800")) + xlab("number of lateral branches")
## Warning: Using `bins = 30` by default. Pick better value with the argument
## `bins`.
Nbranch_histo
## Warning: Removed 32 rows containing non-finite values (stat_bin).
Stand_histo <- gghistogram(sum_df, x = "Stand_mean",
add = "mean", rug = TRUE,
color = "Treatment", fill = "Treatment",
palette = c("#00AFBB", "#E7B800")) + xlab("number of stands established")
## Warning: Using `bins = 30` by default. Pick better value with the argument
## `bins`.
Stand_histo
## Warning: Removed 323 rows containing non-finite values (stat_bin).
## Warning: Removed 1 rows containing missing values (geom_vline).
Pheight_histo <- gghistogram(sum_df, x = "Pheight_mean",
add = "mean", rug = TRUE,
color = "Treatment", fill = "Treatment",
palette = c("#00AFBB", "#E7B800")) + xlab("Plant height (cm)")
## Warning: Using `bins = 30` by default. Pick better value with the argument
## `bins`.
Pheight_histo
## Warning: Removed 28 rows containing non-finite values (stat_bin).
freshFodder_g_histo <- gghistogram(sum_df, x = "freshFodder_g_mean",
add = "mean", rug = TRUE,
color = "Treatment", fill = "Treatment",
palette = c("#00AFBB", "#E7B800")) + xlab("fresh weight foder (g)")
## Warning: Using `bins = 30` by default. Pick better value with the argument
## `bins`.
freshFodder_g_histo
## Warning: Removed 27 rows containing non-finite values (stat_bin).
colnames(sum_df)
## [1] "Treatment" "AccessionNO" "DFF_mean"
## [4] "D50F_mean" "DFMAT_mean" "D95MAT_mean"
## [7] "Nbranch_mean" "Stand_mean" "Pheight_mean"
## [10] "freshFodder_g_mean" "DryFoddr_g_mean" "Seed_Weight_g_mean"
## [13] "Yield_kg_ha_mean" "Pharvest_mean" "PodLoad_mean"
## [16] "AphidIncidence_mean" "No_thrips_mean" "Viral_incidence_mean"
## [19] "sdwt100_mean" "Scab_leaves_mean" "Scab_stem_mean"
## [22] "Scab_peduncles_mean" "Scab_pods_mean" "Septoria_mean"
## [25] "Bblight_mean"
DryFoddr_g_histo <- gghistogram(sum_df, x = "DryFoddr_g_mean",
add = "mean", rug = TRUE,
color = "Treatment", fill = "Treatment",
palette = c("#00AFBB", "#E7B800")) + xlab("dry weith foder (g)")
## Warning: Using `bins = 30` by default. Pick better value with the argument
## `bins`.
DryFoddr_g_histo
## Warning: Removed 26 rows containing non-finite values (stat_bin).
Seed_Weight_g_histo <- gghistogram(sum_df, x = "Seed_Weight_g_mean",
add = "mean", rug = TRUE,
color = "Treatment", fill = "Treatment",
palette = c("#00AFBB", "#E7B800")) + xlab("Seed weight harvested per plot (g)")
## Warning: Using `bins = 30` by default. Pick better value with the argument
## `bins`.
Seed_Weight_g_histo
## Warning: Removed 28 rows containing non-finite values (stat_bin).
Yield_kg_ha_histo <- gghistogram(sum_df, x = "Yield_kg_ha_mean",
add = "mean", rug = TRUE,
color = "Treatment", fill = "Treatment",
palette = c("#00AFBB", "#E7B800")) + xlab("Yield (kg / ha)")
## Warning: Using `bins = 30` by default. Pick better value with the argument
## `bins`.
Yield_kg_ha_histo
## Warning: Removed 28 rows containing non-finite values (stat_bin).
Pharvest_histo <- gghistogram(sum_df, x = "Pharvest_mean",
add = "mean", rug = TRUE,
color = "Treatment", fill = "Treatment",
palette = c("#00AFBB", "#E7B800")) + xlab("number of plants harvested from")
## Warning: Using `bins = 30` by default. Pick better value with the argument
## `bins`.
Pharvest_histo
## Warning: Removed 29 rows containing non-finite values (stat_bin).
PodLoad_histo <- gghistogram(sum_df, x = "PodLoad_mean",
add = "mean", rug = TRUE,
color = "Treatment", fill = "Treatment",
palette = c("#00AFBB", "#E7B800")) + xlab("Number of pods per plant")
## Warning: Using `bins = 30` by default. Pick better value with the argument
## `bins`.
PodLoad_histo
## Warning: Removed 37 rows containing non-finite values (stat_bin).
AphidIncidence_histo <- gghistogram(sum_df, x = "AphidIncidence_mean",
add = "mean", rug = TRUE,
color = "Treatment", fill = "Treatment",
palette = c("#00AFBB", "#E7B800")) + xlab("incidence of aphids on plant")
## Warning: Using `bins = 30` by default. Pick better value with the argument
## `bins`.
AphidIncidence_histo
## Warning: Removed 25 rows containing non-finite values (stat_bin).
No_thrips_histo <- gghistogram(sum_df, x = "No_thrips_mean",
add = "mean", rug = TRUE,
color = "Treatment", fill = "Treatment",
palette = c("#00AFBB", "#E7B800")) + xlab("number of thrips on plant")
## Warning: Using `bins = 30` by default. Pick better value with the argument
## `bins`.
No_thrips_histo
## Warning: Removed 26 rows containing non-finite values (stat_bin).
Viral_incidence_histo <- gghistogram(sum_df, x = "Viral_incidence_mean",
add = "mean", rug = TRUE,
color = "Treatment", fill = "Treatment",
palette = c("#00AFBB", "#E7B800")) + xlab("viral incidence on leaves score")
## Warning: Using `bins = 30` by default. Pick better value with the argument
## `bins`.
Viral_incidence_histo
## Warning: Removed 16 rows containing non-finite values (stat_bin).
sdwt100_histo <- gghistogram(sum_df, x = "sdwt100_mean",
add = "mean", rug = TRUE,
color = "Treatment", fill = "Treatment",
palette = c("#00AFBB", "#E7B800")) + xlab("weight of 100 seeds")
## Warning: Using `bins = 30` by default. Pick better value with the argument
## `bins`.
sdwt100_histo
## Warning: Removed 26 rows containing non-finite values (stat_bin).
Scab_leaves_histo <- gghistogram(sum_df, x = "Scab_leaves_mean",
add = "mean", rug = TRUE,
color = "Treatment", fill = "Treatment",
palette = c("#00AFBB", "#E7B800")) + xlab("percent scab on leaves")
## Warning: Using `bins = 30` by default. Pick better value with the argument
## `bins`.
Scab_leaves_histo
## Warning: Removed 19 rows containing non-finite values (stat_bin).
Scab_stem_histo <- gghistogram(sum_df, x = "Scab_stem_mean",
add = "mean", rug = TRUE,
color = "Treatment", fill = "Treatment",
palette = c("#00AFBB", "#E7B800")) + xlab("percent scab on stem")
## Warning: Using `bins = 30` by default. Pick better value with the argument
## `bins`.
Scab_stem_histo
## Warning: Removed 19 rows containing non-finite values (stat_bin).
Scab_peduncles_histo <- gghistogram(sum_df, x = "Scab_peduncles_mean",
add = "mean", rug = TRUE,
color = "Treatment", fill = "Treatment",
palette = c("#00AFBB", "#E7B800")) + xlab("percent scab on peduncles")
## Warning: Using `bins = 30` by default. Pick better value with the argument
## `bins`.
Scab_peduncles_histo
## Warning: Removed 19 rows containing non-finite values (stat_bin).
Scab_pods_histo <- gghistogram(sum_df, x = "Scab_pods_mean",
add = "mean", rug = TRUE,
color = "Treatment", fill = "Treatment",
palette = c("#00AFBB", "#E7B800")) + xlab("percent scab on pods")
## Warning: Using `bins = 30` by default. Pick better value with the argument
## `bins`.
Scab_pods_histo
## Warning: Removed 19 rows containing non-finite values (stat_bin).
Septoria_histo <- gghistogram(sum_df, x = "Septoria_mean",
add = "mean", rug = TRUE,
color = "Treatment", fill = "Treatment",
palette = c("#00AFBB", "#E7B800")) + xlab("septoria leaf spots (%)")
## Warning: Using `bins = 30` by default. Pick better value with the argument
## `bins`.
Septoria_histo
## Warning: Removed 19 rows containing non-finite values (stat_bin).
Bblight_histo <- gghistogram(sum_df, x = "Bblight_mean",
add = "mean", rug = TRUE,
color = "Treatment", fill = "Treatment",
palette = c("#00AFBB", "#E7B800")) + xlab("blight leaf spots (%)")
## Warning: Using `bins = 30` by default. Pick better value with the argument
## `bins`.
Bblight_histo
## Warning: Removed 19 rows containing non-finite values (stat_bin).
Based on this data - I am wondering if we can calculate Harvest Index - by dividing Seed_Weight_g by DryFoddr_g. Let’s see how that looks like:
sum_df$HI <- sum_df$Seed_Weight_g_mean / sum_df$DryFoddr_g_mean
HI_histo <- gghistogram(sum_df, x = "HI",
add = "mean", rug = TRUE,
color = "Treatment", fill = "Treatment",
palette = c("#00AFBB", "#E7B800")) + xlab("HI (seed weight / dry weight fodder)")
## Warning: Using `bins = 30` by default. Pick better value with the argument
## `bins`.
HI_histo
## Warning: Removed 28 rows containing non-finite values (stat_bin).
That’s really interesting - since there are few accessions that INCREASE in HI upon lowP treatment. Let’s have a look at the relative CHANGE in Dry Fodder, Seed Weight and HI between High and Low P treatments:
colnames(sum_df)
## [1] "Treatment" "AccessionNO" "DFF_mean"
## [4] "D50F_mean" "DFMAT_mean" "D95MAT_mean"
## [7] "Nbranch_mean" "Stand_mean" "Pheight_mean"
## [10] "freshFodder_g_mean" "DryFoddr_g_mean" "Seed_Weight_g_mean"
## [13] "Yield_kg_ha_mean" "Pharvest_mean" "PodLoad_mean"
## [16] "AphidIncidence_mean" "No_thrips_mean" "Viral_incidence_mean"
## [19] "sdwt100_mean" "Scab_leaves_mean" "Scab_stem_mean"
## [22] "Scab_peduncles_mean" "Scab_pods_mean" "Septoria_mean"
## [25] "Bblight_mean" "HI"
Stress_index <- sum_df[,c(1:2, 11:12,26)]
Stress_index
SI_high <- subset(Stress_index, Stress_index$Treatment == "HighP")
SI_low <- subset(Stress_index, Stress_index$Treatment == "LowP")
colnames(SI_high)[3] <- "DryFodder_g_HighP"
colnames(SI_high)[4] <- "SeedWeight_g_HighP"
colnames(SI_high)[5] <- "HI_HighP"
SI_high2 <- SI_high[,2:5]
colnames(SI_low)[3] <- "DryFodder_g_LowP"
colnames(SI_low)[4] <- "SeedWeight_g_LowP"
colnames(SI_low)[5] <- "HI_LowP"
SI_low2 <- SI_low[,2:5]
library(reshape2)
##
## Attaching package: 'reshape2'
## The following object is masked from 'package:tidyr':
##
## smiths
SI_all <- merge(SI_high2, SI_low2, id=AccessionNO)
SI_all$Fodder_SI <- SI_all$DryFodder_g_LowP / SI_all$DryFodder_g_HighP
SI_all$Seed_SI <- SI_all$SeedWeight_g_LowP / SI_all$SeedWeight_g_HighP
SI_all$HI_SI <- SI_all$HI_LowP / SI_all$HI_HighP
SI_all
Now - let’s visualize all of the Stress Indices calculated one by one:
Fodder_SI_histo <- gghistogram(SI_all, x = "Fodder_SI",
add = "mean", rug = TRUE) + xlab("Dry Fodder Weight (lowP / highP)")
## Warning: Using `bins = 30` by default. Pick better value with the argument
## `bins`.
## Warning: geom_vline(): Ignoring `mapping` because `xintercept` was provided.
## Warning: geom_vline(): Ignoring `data` because `xintercept` was provided.
Fodder_SI_histo
## Warning: Removed 21 rows containing non-finite values (stat_bin).
Seed_SI_histo <- gghistogram(SI_all, x = "Seed_SI",
add = "mean", rug = TRUE) + xlab("Seed Weight (lowP / highP)")
## Warning: Using `bins = 30` by default. Pick better value with the argument
## `bins`.
## Warning: geom_vline(): Ignoring `mapping` because `xintercept` was provided.
## Warning: geom_vline(): Ignoring `data` because `xintercept` was provided.
Seed_SI_histo
## Warning: Removed 23 rows containing non-finite values (stat_bin).
HI_SI_histo <- gghistogram(SI_all, x = "HI_SI",
add = "mean", rug = TRUE) + xlab("Harvest Index (lowP / highP)")
## Warning: Using `bins = 30` by default. Pick better value with the argument
## `bins`.
## Warning: geom_vline(): Ignoring `mapping` because `xintercept` was provided.
## Warning: geom_vline(): Ignoring `data` because `xintercept` was provided.
HI_SI_histo
## Warning: Removed 23 rows containing non-finite values (stat_bin).
# Drought
Cool let’s have a look at drought data:
head(Drought)
I still dont have the definite answer - but I suspect that the numbers behind individual traits have something to do with time. So let’s see how these traits change over time. Let’s start with plant height (PH)
PH_drought <- Drought[,c(2, 5:8)]
# let's summarize it per genotype before melting the data set:
sum_PHD <- PH_drought %>%
group_by(Accession.Name) %>%
summarize(PH.1_mean = mean(PH.1), PH.2_mean = mean(PH.2), PH.3_mean = mean(PH.3), PH.4_mean = mean(PH.4))
sum_PHD
melt_PHD <- melt(sum_PHD)
## Using Accession.Name as id variables
colnames(melt_PHD)[2] <- "days"
melt_PHD$days <- gsub("PH.", "", melt_PHD$days)
melt_PHD$days <- gsub("_mean", "", melt_PHD$days)
melt_PHD$days <- as.factor(as.numeric(melt_PHD$days))
colnames(melt_PHD)[3] <- "PlantHeight"
melt_PHD
Let’s plot the progression of plant height throughtout the individual timepoints:
PlantHeight_lgraph <- ggplot(data=melt_PHD, aes(x= days, y=PlantHeight, group = Accession.Name))
PlantHeight_lgraph <- PlantHeight_lgraph +geom_line(alpha = 0.1)
#PlantHeight_lgraph <- PlantHeight_lgraph + stat_summary(fun.data = mean_se, geom="ribbon", linetype=0, alpha=0.3)+ stat_summary(fun.y=mean, size=0.7, geom="line", linetype = "dashed")
PlantHeight_lgraph <- PlantHeight_lgraph + ylab("Plant Height (cm)") + xlab("Weeks") + theme(legend.position=c(0.2, 0.8))
PlantHeight_lgraph
## Warning: Removed 169 row(s) containing missing values (geom_path).
OK - let’s have a look at “Tiller number” (assuming that this means lateral branches):
colnames(Drought)
## [1] "Plot_No" "Accession.Name" "Box" "PN"
## [5] "PH.1" "PH.2" "PH.3" "PH.4"
## [9] "TN.1" "TN.2" "TN.3" "TN.4"
## [13] "LS.1" "LS.2" "LS.3" "SG.1"
## [17] "SG.2" "RR"
Branch_drought <- Drought[,c(2, 9:12)]
# let's summarize it per genotype before melting the data set:
sum_TND <- Branch_drought %>%
group_by(Accession.Name) %>%
summarize(TN.1_mean = mean(TN.1), TN.2_mean = mean(TN.2), TN.3_mean = mean(TN.3), TN.4_mean = mean(TN.4))
sum_TND
melt_TND <- melt(sum_TND)
## Using Accession.Name as id variables
melt_TND
colnames(melt_TND)[2] <- "days"
melt_TND$days <- gsub("TN.", "", melt_TND$days)
melt_TND$days <- gsub("_mean", "", melt_TND$days)
melt_TND$days <- as.factor(as.numeric(melt_TND$days))
colnames(melt_TND)[3] <- "NO_Branches"
melt_TND
Branch_lgraph <- ggplot(data=melt_TND, aes(x= days, y=NO_Branches, group = Accession.Name))
Branch_lgraph <- Branch_lgraph +geom_line(alpha = 0.1)
Branch_lgraph <- Branch_lgraph + ylab("Number of Branches") + xlab("Weeks") + theme(legend.position=c(0.2, 0.8))
Branch_lgraph
## Warning: Removed 151 row(s) containing missing values (geom_path).
colnames(Drought)
## [1] "Plot_No" "Accession.Name" "Box" "PN"
## [5] "PH.1" "PH.2" "PH.3" "PH.4"
## [9] "TN.1" "TN.2" "TN.3" "TN.4"
## [13] "LS.1" "LS.2" "LS.3" "SG.1"
## [17] "SG.2" "RR"
Senescence_drought <- Drought[,c(2, 13:15)]
# let's summarize it per genotype before melting the data set:
sum_LSD <- Senescence_drought %>%
group_by(Accession.Name) %>%
summarize(LS.1_mean = mean(LS.1), LS.2_mean = mean(LS.2), LS.3_mean = mean(LS.3))
sum_LSD
melt_LSD <- melt(sum_LSD)
## Using Accession.Name as id variables
melt_LSD
colnames(melt_LSD)[2] <- "days"
melt_LSD$days <- gsub("LS.", "", melt_LSD$days)
melt_LSD$days <- gsub("_mean", "", melt_LSD$days)
melt_LSD$days <- as.factor(as.numeric(melt_LSD$days))
colnames(melt_LSD)[3] <- "Leaf_Senescence"
melt_LSD
Senescence_lgraph <- ggplot(data=melt_LSD, aes(x= days, y=Leaf_Senescence, group = Accession.Name))
Senescence_lgraph <- Senescence_lgraph +geom_line(alpha = 0.1)
Senescence_lgraph <- Senescence_lgraph + ylab("Leaf Senescence") + xlab("Weeks") + theme(legend.position=c(0.2, 0.8))
Senescence_lgraph
## Warning: Removed 195 row(s) containing missing values (geom_path).
colnames(Drought)
## [1] "Plot_No" "Accession.Name" "Box" "PN"
## [5] "PH.1" "PH.2" "PH.3" "PH.4"
## [9] "TN.1" "TN.2" "TN.3" "TN.4"
## [13] "LS.1" "LS.2" "LS.3" "SG.1"
## [17] "SG.2" "RR"
Greenness_drought <- Drought[,c(2, 16:17)]
# let's summarize it per genotype before melting the data set:
sum_SGD <- Greenness_drought %>%
group_by(Accession.Name) %>%
summarize(SG.1_mean = mean(SG.1), SG.2_mean = mean(SG.2))
sum_SGD
melt_SGD <- melt(sum_SGD)
## Using Accession.Name as id variables
melt_SGD
colnames(melt_SGD)[2] <- "days"
melt_SGD$days <- gsub("SG.", "", melt_SGD$days)
melt_SGD$days <- gsub("_mean", "", melt_SGD$days)
melt_SGD$days <- as.factor(as.numeric(melt_SGD$days))
colnames(melt_SGD)[3] <- "Stem_Greenness"
melt_SGD
Greenness_lgraph <- ggplot(data=melt_SGD, aes(x= days, y=Stem_Greenness, group = Accession.Name))
Greenness_lgraph <- Greenness_lgraph +geom_line(alpha = 0.1)
Greenness_lgraph <- Greenness_lgraph + ylab("Stem Greenness") + xlab("Weeks") + theme(legend.position=c(0.2, 0.8))
Greenness_lgraph
## Warning: Removed 126 row(s) containing missing values (geom_path).
Recovery rate:
Drought_Recovery_histo <- gghistogram(Drought, x = "RR",
add = "mean", rug = TRUE) + xlab("Recovery Rate after Drought Stress")
## Warning: Using `bins = 30` by default. Pick better value with the argument
## `bins`.
## Warning: geom_vline(): Ignoring `mapping` because `xintercept` was provided.
## Warning: geom_vline(): Ignoring `data` because `xintercept` was provided.
Drought_Recovery_histo
## Warning: Removed 22 rows containing non-finite values (stat_bin).
Let’s do one histogram of Leaf senescence at the final day:
Drought_Senescence_histo <- gghistogram(Drought, x = "LS.2",
add = "mean", rug = TRUE) + xlab("Leaf Senescence after Drought Stress")
## Warning: Using `bins = 30` by default. Pick better value with the argument
## `bins`.
## Warning: geom_vline(): Ignoring `mapping` because `xintercept` was provided.
## Warning: geom_vline(): Ignoring `data` because `xintercept` was provided.
Drought_Senescence_histo
## Warning: Removed 69 rows containing non-finite values (stat_bin).
Bruchid
In the case of bruchids - I think these is a timeseries experiment counting the adult bruchids between the accessions, which can be visualized as a progression line. Let’s prepare the data first:
colnames(Bruchid)
## [1] "AccessionNO" "Replication"
## [3] "initial.weight..g." "egg.count"
## [5] "days.to.adult.emergence" "adult.countday1"
## [7] "day2" "day3"
## [9] "day4" "day5"
## [11] "day6" "day7"
## [13] "day8" "day.9"
## [15] "day10" "day.11"
## [17] "day12" "day13"
## [19] "day14" "day15"
## [21] "day16" "day17"
## [23] "day18" "day19"
## [25] "day20" "day21"
## [27] "day.22" "day.23"
## [29] "day24" "day25"
## [31] "day26" "day27"
## [33] "day28" "residual.weight..g."
## [35] "number.of.damage.seeds" "number.of.exit.hole.per.seed"
Bruchid_AdultCnt <- Bruchid[,c(1,6:33)]
colnames(Bruchid_AdultCnt)[2] <- "day1"
colnames(Bruchid_AdultCnt)[10] <- "day9"
colnames(Bruchid_AdultCnt)[12] <- "day11"
colnames(Bruchid_AdultCnt)[23] <- "day22"
colnames(Bruchid_AdultCnt)[24] <- "day23"
colnames(Bruchid_AdultCnt)
## [1] "AccessionNO" "day1" "day2" "day3" "day4"
## [6] "day5" "day6" "day7" "day8" "day9"
## [11] "day10" "day11" "day12" "day13" "day14"
## [16] "day15" "day16" "day17" "day18" "day19"
## [21] "day20" "day21" "day22" "day23" "day24"
## [26] "day25" "day26" "day27" "day28"
BACnona <- na.exclude(Bruchid_AdultCnt)
dim(BACnona)
## [1] 290 29
BACnona
melt_BAC <- melt(BACnona, id="AccessionNO")
dim(melt_BAC)
## [1] 8120 3
unique(melt_BAC$variable)
## [1] day1 day2 day3 day4 day5 day6 day7 day8 day9 day10 day11 day12
## [13] day13 day14 day15 day16 day17 day18 day19 day20 day21 day22 day23 day24
## [25] day25 day26 day27 day28
## 28 Levels: day1 day2 day3 day4 day5 day6 day7 day8 day9 day10 day11 ... day28
colnames(melt_BAC)[2] <- "days"
colnames(melt_BAC)[3] <- "AdultBruchidCount"
melt_BAC$days <- gsub("day", "", melt_BAC$days)
melt_BAC$days <- as.numeric(as.character(melt_BAC$days))
melt_BAC
unique(melt_BAC$days)
## [1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
## [26] 26 27 28
Now - lets plot this data:
BAC_lgraph <- ggplot(data=melt_BAC, aes(x= days, y=AdultBruchidCount, group = AccessionNO))
BAC_lgraph <- BAC_lgraph +geom_line(alpha = 0.1)
BAC_lgraph <- BAC_lgraph + ylab("Bruchid Adult Count") + xlab("Days After Treatment ???") + theme(legend.position=c(0.2, 0.8))
BAC_lgraph
It seems like the bruchid count is not cummulative - let’s calculate cummulative bruchid count:
Bruchid_AdultCnt$d1CUM <- Bruchid_AdultCnt$day1
Bruchid_AdultCnt$d2CUM <- Bruchid_AdultCnt$day1 + Bruchid_AdultCnt$day2
Bruchid_AdultCnt$d3CUM <- Bruchid_AdultCnt$d2CUM + Bruchid_AdultCnt$day3
Bruchid_AdultCnt$d4CUM <- Bruchid_AdultCnt$d3CUM + Bruchid_AdultCnt$day4
Bruchid_AdultCnt$d5CUM <- Bruchid_AdultCnt$d4CUM + Bruchid_AdultCnt$day5
Bruchid_AdultCnt$d6CUM <- Bruchid_AdultCnt$d5CUM + Bruchid_AdultCnt$day6
Bruchid_AdultCnt$d7CUM <- Bruchid_AdultCnt$d6CUM + Bruchid_AdultCnt$day7
Bruchid_AdultCnt$d8CUM <- Bruchid_AdultCnt$d7CUM + Bruchid_AdultCnt$day8
Bruchid_AdultCnt$d9CUM <- Bruchid_AdultCnt$d8CUM + Bruchid_AdultCnt$day9
Bruchid_AdultCnt$d10CUM <- Bruchid_AdultCnt$d9CUM + Bruchid_AdultCnt$day10
Bruchid_AdultCnt$d11CUM <- Bruchid_AdultCnt$d10CUM + Bruchid_AdultCnt$day11
Bruchid_AdultCnt$d12CUM <- Bruchid_AdultCnt$d11CUM + Bruchid_AdultCnt$day12
Bruchid_AdultCnt$d13CUM <- Bruchid_AdultCnt$d12CUM + Bruchid_AdultCnt$day13
Bruchid_AdultCnt$d14CUM <- Bruchid_AdultCnt$d13CUM + Bruchid_AdultCnt$day14
Bruchid_AdultCnt$d15CUM <- Bruchid_AdultCnt$d14CUM + Bruchid_AdultCnt$day15
Bruchid_AdultCnt$d16CUM <- Bruchid_AdultCnt$d15CUM + Bruchid_AdultCnt$day16
Bruchid_AdultCnt$d17CUM <- Bruchid_AdultCnt$d16CUM + Bruchid_AdultCnt$day17
Bruchid_AdultCnt$d18CUM <- Bruchid_AdultCnt$d17CUM + Bruchid_AdultCnt$day18
Bruchid_AdultCnt$d19CUM <- Bruchid_AdultCnt$d18CUM + Bruchid_AdultCnt$day19
Bruchid_AdultCnt$d20CUM <- Bruchid_AdultCnt$d19CUM + Bruchid_AdultCnt$day20
Bruchid_AdultCnt$d21CUM <- Bruchid_AdultCnt$d20CUM + Bruchid_AdultCnt$day21
Bruchid_AdultCnt$d22CUM <- Bruchid_AdultCnt$d21CUM + Bruchid_AdultCnt$day22
Bruchid_AdultCnt$d23CUM <- Bruchid_AdultCnt$d22CUM + Bruchid_AdultCnt$day23
Bruchid_AdultCnt$d24CUM <- Bruchid_AdultCnt$d23CUM + Bruchid_AdultCnt$day24
Bruchid_AdultCnt$d25CUM <- Bruchid_AdultCnt$d24CUM + Bruchid_AdultCnt$day25
Bruchid_AdultCnt$d26CUM <- Bruchid_AdultCnt$d25CUM + Bruchid_AdultCnt$day26
Bruchid_AdultCnt$d27CUM <- Bruchid_AdultCnt$d26CUM + Bruchid_AdultCnt$day27
Bruchid_AdultCnt$d28CUM <- Bruchid_AdultCnt$d27CUM + Bruchid_AdultCnt$day28
Bruchid_AdultCnt
OK - now let’s twist this data exactly as we twisted the non-cummulative one into a graph:
BACnona <- na.exclude(Bruchid_AdultCnt)
colnames(BACnona)
## [1] "AccessionNO" "day1" "day2" "day3" "day4"
## [6] "day5" "day6" "day7" "day8" "day9"
## [11] "day10" "day11" "day12" "day13" "day14"
## [16] "day15" "day16" "day17" "day18" "day19"
## [21] "day20" "day21" "day22" "day23" "day24"
## [26] "day25" "day26" "day27" "day28" "d1CUM"
## [31] "d2CUM" "d3CUM" "d4CUM" "d5CUM" "d6CUM"
## [36] "d7CUM" "d8CUM" "d9CUM" "d10CUM" "d11CUM"
## [41] "d12CUM" "d13CUM" "d14CUM" "d15CUM" "d16CUM"
## [46] "d17CUM" "d18CUM" "d19CUM" "d20CUM" "d21CUM"
## [51] "d22CUM" "d23CUM" "d24CUM" "d25CUM" "d26CUM"
## [56] "d27CUM" "d28CUM"
BACnona2 <- BACnona[,c(1,30:57)]
melt_BAC2 <- melt(BACnona2, id="AccessionNO")
melt_BAC2
dim(melt_BAC2)
## [1] 8120 3
unique(melt_BAC2$variable)
## [1] d1CUM d2CUM d3CUM d4CUM d5CUM d6CUM d7CUM d8CUM d9CUM d10CUM
## [11] d11CUM d12CUM d13CUM d14CUM d15CUM d16CUM d17CUM d18CUM d19CUM d20CUM
## [21] d21CUM d22CUM d23CUM d24CUM d25CUM d26CUM d27CUM d28CUM
## 28 Levels: d1CUM d2CUM d3CUM d4CUM d5CUM d6CUM d7CUM d8CUM d9CUM ... d28CUM
colnames(melt_BAC2)[2] <- "days"
colnames(melt_BAC2)[3] <- "CummulativeAdultBruchidCount"
melt_BAC2$days <- gsub("d", "", melt_BAC2$days)
melt_BAC2$days <- gsub("CUM", "", melt_BAC2$days)
melt_BAC2$days <- as.numeric(as.character(melt_BAC2$days))
melt_BAC2
unique(melt_BAC2$days)
## [1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
## [26] 26 27 28
BACum_lgraph <- ggplot(data=melt_BAC2, aes(x= days, y=CummulativeAdultBruchidCount, group = AccessionNO))
BACum_lgraph <- BACum_lgraph +geom_line(alpha = 0.1)
BACum_lgraph <- BACum_lgraph + ylab("Cummulative Bruchid Adult Count") + xlab("Days After Treatment ???") + theme(legend.position=c(0.2, 0.8))
BACum_lgraph
And then finally - let’s have a look at other Bruchid traits:
Bruchid
Bruchid_egg_histo <- gghistogram(Bruchid, x = "egg.count",
add = "mean", rug = TRUE) + xlab("Bruchid egg count")
## Warning: Using `bins = 30` by default. Pick better value with the argument
## `bins`.
## Warning: geom_vline(): Ignoring `mapping` because `xintercept` was provided.
## Warning: geom_vline(): Ignoring `data` because `xintercept` was provided.
Bruchid_egg_histo
## Warning: Removed 981 rows containing non-finite values (stat_bin).
Bruchid_emergence_histo <- gghistogram(Bruchid, x = "days.to.adult.emergence",
add = "mean", rug = TRUE) + xlab("Days to Adult Bruchid emergence")
## Warning: Using `bins = 30` by default. Pick better value with the argument
## `bins`.
## Warning: geom_vline(): Ignoring `mapping` because `xintercept` was provided.
## Warning: geom_vline(): Ignoring `data` because `xintercept` was provided.
Bruchid_emergence_histo
## Warning: Removed 983 rows containing non-finite values (stat_bin).
Bruchid_seeds_histo <- gghistogram(Bruchid, x = "number.of.damage.seeds",
add = "mean", rug = TRUE) + xlab("Number of damaged seeds")
## Warning: Using `bins = 30` by default. Pick better value with the argument
## `bins`.
## Warning: geom_vline(): Ignoring `mapping` because `xintercept` was provided.
## Warning: geom_vline(): Ignoring `data` because `xintercept` was provided.
Bruchid_seeds_histo
## Warning: Removed 983 rows containing non-finite values (stat_bin).
Bruchid_exitholes_histo <- gghistogram(Bruchid, x = "number.of.exit.hole.per.seed",
add = "mean", rug = TRUE) + xlab("Number of exit holes per seed")
## Warning: Using `bins = 30` by default. Pick better value with the argument
## `bins`.
## Warning: geom_vline(): Ignoring `mapping` because `xintercept` was provided.
## Warning: geom_vline(): Ignoring `data` because `xintercept` was provided.
Bruchid_exitholes_histo
## Warning: Removed 983 rows containing non-finite values (stat_bin).
library(cowplot)
##
## Attaching package: 'cowplot'
## The following object is masked from 'package:ggpubr':
##
## get_legend
Field_figure <- plot_grid(Seed_Weight_g_histo, Drought_Senescence_histo, Bruchid_egg_histo, labels = c('B', 'C', 'D'), ncol = 3)
## Warning: Removed 28 rows containing non-finite values (stat_bin).
## Warning: Removed 69 rows containing non-finite values (stat_bin).
## Warning: Removed 981 rows containing non-finite values (stat_bin).
Field_figure
pdf("Field_Figure.pdf", 10, 5)
print(Field_figure)
dev.off()
## quartz_off_screen
## 2