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.

Data loading

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)

Low and high Phosphate

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).

Bruchids

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