Related
I'm trying to make an object that I can use in the package phyloseq, but I can't seem to get it to work. Below is a small subset of my data. First is an otu table, the second has the taxa.
OTUs <- dput(OTU_table[1:5,])
structure(list(OTU_ID = c("OTU_1", "OTU_6", "OTU_16", "OTU_2",
"OTU_216"), V2T4r5Croot = c(3505L, 5L, 124L, 0L, 8L), V2T4r5Broot = c(18880L,
18390L, 1L, 10233L, 0L), R6T2r5Croot = c(82973L, 5195L, 444L,
93L, 7L), V2T2r2Broot = c(13747L, 79L, 1603L, 33L, 0L), R3T2r5Broot = c(11212L,
2L, 462L, 33977L, 0L), V2T2r2Croot = c(63779L, 354L, 5204L, 374L,
0L), R3T4r5Croot = c(60109L, 1518L, 4067L, 875L, 2L), R3T1r5Aroot = c(28412L,
3161L, 626L, 3465L, 131L), R3T4r2Croot = c(40569L, 110L, 575L,
8642L, 0L), V2T2r5Aroot = c(22800L, 2225L, 1334L, 12185L, 4L),
R6T2r5Broot = c(50017L, 5739L, 4199L, 0L, 0L), R6T1r1Broot = c(52756L,
0L, 35L, 490L, 0L), R6T1r2Croot = c(14828L, 10227L, 180L,
3973L, 10L), V2T1r6Aroot = c(40317L, 146L, 543L, 5975L, 36L
), R6T2r1Broot = c(13801L, 524L, 189L, 6121L, 0L), V2T4r1Broot = c(58001L,
21L, 247L, 2359L, 5L), R6T2r6Croot = c(79608L, 715L, 384L,
13121L, 0L), R3T2r1Aroot = c(7938L, 187L, 2305L, 212L, 0L
), R6T2r6Aroot = c(20243L, 1098L, 320L, 10632L, 9L), V2T1r5Broot = c(11102L,
156L, 200L, 8205L, 0L), V2T4r2Aroot = c(7641L, 393L, 53L,
366L, 27L), R6T4r5Croot = c(5L, 68L, 7192L, 4L, 0L), R6T4r5Broot = c(40122L,
92L, 29L, 64631L, 59L), R3T4r6Croot = c(49960L, 101L, 97L,
18846L, 0L), R6T2r2Aroot = c(81204L, 7801L, 1499L, 13245L,
6L), R3T4r5Aroot = c(108839L, 5072L, 1894L, 1957L, 55L),
R3T2r1Broot = c(624L, 0L, 62L, 3687L, 0L), R6T1r5Croot = c(67805L,
0L, 238L, 2L, 0L), V2T4r6Croot = c(43210L, 24L, 0L, 33L,
0L), R3T1r6Aroot = c(6419L, 274L, 1062L, 2411L, 79L), R3T2r2Croot = c(53908L,
34726L, 3497L, 82L, 144L), R3T4r2Aroot = c(10503L, 48L, 23L,
27764L, 0L), R3T2r5Aroot = c(2386L, 79L, 39L, 1805L, 0L),
V2T2r1Croot = c(20324L, 318L, 14L, 1192L, 0L), V2T1r5Aroot = c(3933L,
33L, 6L, 3785L, 0L), V2T1r1Broot = c(99803L, 7377L, 203L,
1098L, 75L), R3T4r6Aroot = c(16601L, 1113L, 217L, 309L, 33L
), R3T2r1Croot = c(135822L, 24308L, 4986L, 219L, 230L), V2T1r5Croot = c(12444L,
139L, 32L, 211L, 0L), R3T1r6Croot = c(3957L, 9L, 117L, 293426L,
0L), R6T1r2Broot = c(92870L, 43L, 625L, 616L, 0L), V2T2r2Aroot = c(26697L,
654L, 130L, 31056L, 0L), R3T2r6Broot = c(82471L, 22990L,
3253L, 955L, 4L), R6T1r1Aroot = c(11187L, 0L, 5L, 0L, 0L),
R6T1r6Broot = c(6016L, 72L, 386L, 3368L, 0L), R3T1r1Aroot = c(55133L,
5854L, 494L, 1694L, 45L), V2T1r2Aroot = c(9346L, 139L, 17L,
64L, 0L), R3T4r1Aroot = c(84510L, 4049L, 1441L, 1193L, 5L
), R6T2r5Aroot = c(38997L, 33L, 273L, 967L, 0L), R3T4r2Broot = c(54402L,
565L, 567L, 9L, 0L), R3T1r2Broot = c(42977L, 24L, 132L, 3L,
7L), R6T1r5Aroot = c(5433L, 39L, 16L, 2L, 0L), R3T1r1Croot = c(4356L,
0L, 0L, 24719L, 0L), R3T4r5Broot = c(39402L, 6424L, 151L,
0L, 0L), R6T1r2Aroot = c(67639L, 14L, 16L, 1L, 0L), R3T2r5Croot = c(12136L,
3420L, 193L, 98L, 0L), R3T1r5Croot = c(21358L, 2876L, 347L,
9850L, 0L), V2T1r6Broot = c(16975L, 2L, 273L, 1397L, 98L),
R6T1r1Croot = c(7403L, 18L, 36L, 2112L, 0L), R3T1r1Broot = c(18301L,
1122L, 276L, 6921L, 7L), V2T2r6Croot = c(59794L, 2560L, 92L,
12437L, 0L), R6T1r5Broot = c(58396L, 1284L, 119L, 21078L,
0L), V2T4r6Broot = c(10496L, 773L, 1603L, 1950L, 19L), V2T1r6Croot = c(34687L,
9560L, 38L, 19L, 1L), R3T4r1Broot = c(23020L, 78L, 276L,
160L, 66L), V2T4r1Aroot = c(32591L, 91L, 197L, 308L, 0L),
V2T4r6Aroot = c(35314L, 3L, 1550L, 1775L, 0L), V2T2r6Aroot = c(12424L,
884L, 149L, 481L, 0L), V2T2r1Aroot = c(6721L, 52L, 203L,
4286L, 0L), R3T2r2Broot = c(26251L, 447L, 326L, 4834L, 0L
), V2T4r2Broot = c(27830L, 2404L, 1131L, 98L, 18L), R6T1r6Aroot = c(11818L,
14L, 34L, 1L, 0L), V2T1r1Croot = c(7961L, 5L, 376L, 2802L,
0L), R6T2r2Croot = c(25329L, 15L, 63L, 76L, 0L), R6T2r2Broot = c(1002L,
0L, 153L, 26L, 0L), R6T2r1Aroot = c(38869L, 11953L, 1987L,
2639L, 0L), V2T4r5Aroot = c(1838L, 18L, 1L, 47981L, 5L),
R6T4r1Aroot = c(3323L, 16L, 3L, 7212L, 0L), V2T2r5Croot = c(22124L,
1037L, 395L, 1515L, 296L), R3T4r6Broot = c(4112L, 0L, 0L,
1L, 0L), R3T1r5Broot = c(4443L, 120L, 528L, 1176L, 0L), V2T2r6Broot = c(2068L,
55L, 11L, 7180L, 0L), R3T2r2Aroot = c(4962L, 277L, 35L, 1L,
7L), V2T1r1Aroot = c(18506L, 0L, 44L, 93L, 0L), R3T1r2Aroot = c(19779L,
2L, 162L, 51355L, 8L), R6T2r1Croot = c(913L, 4L, 26L, 10L,
0L), V2T2r5Broot = c(7309L, 69L, 63L, 38L, 15L), V2T4r1Croot = c(8043L,
231L, 1351L, 787L, 18L), R3T1r6Broot = c(1973L, 1L, 0L, 40482L,
0L), R3T4r1Croot = c(4004L, 326L, 12L, 2020L, 11L), V2T1r2Croot = c(2712L,
21L, 43L, 2127L, 0L), V2T4r2Croot = c(3711L, 118L, 0L, 1487L,
50L), R3T2r6Croot = c(1491L, 290L, 55L, 33L, 0L), R6T1r6Croot = c(8541L,
0L, 0L, 0L, 0L), R6T2r6Broot = c(2561L, 6L, 2L, 387L, 0L),
V2T2r1Broot = c(2128L, 315L, 180L, 1483L, 0L), V2T1r2Broot = c(2363L,
78L, 260L, 2182L, 0L), R3T2r6Aroot = c(486L, 0L, 191L, 1209L,
0L), R3T1r2Croot = c(6014L, 18L, 126L, 587L, 0L), NC1root = c(5L,
0L, 0L, 0L, 0L), R6T4r6Aroot = c(246L, 3L, 7L, 83L, 0L)), row.names = c(NA,
5L), class = "data.frame")
and
taxa <- dput(taxa[c(1,2,6,16,216),])
structure(list(OTU_ID = c("OTU_1", "OTU_2", "OTU_6", "OTU_16",
"OTU_216"), Kingdom = c("Fungi_1", "Fungi_1", "Fungi_1", "Fungi_1",
"Fungi_1"), Phylum = c("Ascomycota_1", "Ascomycota_1", "", "Ascomycota_1",
"Basidiomycota_1"), Class = c("Sordariomycetes_1", "Dothideomycetes_1",
"", "Dothideomycetes_1", "Tremellomycetes_1"), Order = c("Hypocreales_1",
"Pleosporales_1", "", "Pleosporales_1", "Tremellales_1"), Family = c("Nectriaceae_1",
"Corynesporascaceae_1", "", "Pleosporaceae_1", "Trimorphomycetaceae"
), Genus = c("Fusarium_1", "Corynespora_1", "", "Alternaria_1",
"Saitozyma"), Species = c("", "Corynespora cassiicola ", "",
"", "")), row.names = c(1L, 2L, 6L, 16L, 216L), class = "data.frame")
Here's some code I've tried:
OTUs1 <- as.matrix(OTUs)
taxa1 <- as.matrix(taxa)
OTUs2 = otu_table(OTUs1, taxa_are_rows = TRUE)
physeq <- phyloseq(OTUs2, taxa1)
I get this error when I run the code to try and make the object:
Error in phyloseq(OTUs2, taxa1) :
Problem with OTU/taxa indices among those you provided.
Check using intersect() and taxa_names()
I assume that you are getting this error because the row.names between both matrices do not match. The following steps should resolve your error:
require("dplyr")
# Add OTU_IDs as row.names
row.names(taxa) <- taxa[,'OTU_ID']
row.names(OTUs) <- OTUs[,'OTU_ID']
# Remove the OTU_ID column
taxa <- taxa[,colnames(taxa) != 'OTU_ID']
OTUs <- OTUs[,colnames(OTUs) != 'OTU_ID']
# Make sure that OTU_IDs in taxa and OTUs overlap and are in the same order
ids <- dplyr::intersect(row.names(taxa), row.names(OTUs))
taxa <- taxa[ids,]
OTUs <- OTUs[ids,]
# Convert to phyloseq object
taxa <- tax_table(as.matrix(taxa))
OTUs <- otu_table(as.matrix(OTUs), taxa_are_rows = TRUE)
physeq <- phyloseq(taxa, OTUs)
I want learn Non-matric multidimensional scale, I have these data downloaded from https://cougrstats.wordpress.com/2019/12/11/non-metric-multidimensional-scaling-nmds-in-r/
data are
library(vegan)
dput(orders)
structure(list(Amphipoda = c(0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 2L, 0L, 0L, 39L, 0L, 0L, 0L, 0L, 0L,
8L, 10L, 52L, 11L, 51L, 14L, 96L, 7L, 93L, 0L, 29L, 4L, 0L, 0L,
0L, 0L, 0L, 0L, 4L, 0L, 0L, 0L, 36L, 10L, 5L, 15L, 14L, 3L, 11L,
6L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 1L, 0L, 0L, 0L,
0L, 0L, 0L, 2L, 4L, 4L, 3L, 4L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 3L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L,
5L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 54L, 51L, 47L, 212L,
26L, 51L, 0L, 0L, 4L, 0L, 0L, 0L, 4L, 6L, 14L, 34L, 8L, 284L,
1L, 2L, 6L, 92L, 134L, 98L, 38L, 8L, 116L, 0L, 0L, 8L, 264L,
104L, 114L, 138L, 152L, 42L, 46L, 10L, 67L, 25L, 0L, 0L, 1L,
12L, 0L, 26L, 0L, 67L, 456L, 7L, 2L, 46L, 155L, 82L, 124L, 596L,
0L, 36L, 1L, 1L, 588L, 0L, 0L, 16L, 0L, 0L, 470L, 0L, 6L, 262L,
2L, 476L, 0L, 6L, 14L, 0L, 342L, 0L, 6L, 4L, 24L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 2L, 0L, 6L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 74L, 170L, 37L, 228L, 144L, 21L, 189L, 117L, 45L, 132L, 108L,
35L, 0L, 0L, 0L, 0L, 0L, 0L), Coleoptera = c(42L, 5L, 7L, 14L,
2L, 43L, 7L, 2L, 15L, 5L, 6L, 23L, 25L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 1L, 0L, 0L, 2L, 0L, 1L, 0L, 0L, 0L, 142L, 96L, 202L, 306L,
917L, 748L, 139L, 148L, 115L, 216L, 0L, 0L, 1L, 0L, 0L, 0L, 0L,
0L, 12L, 36L, 48L, 30L, 10L, 12L, 11L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 3L, 0L, 0L, 0L,
0L, 0L, 381L, 397L, 229L, 51L, 266L, 102L, 201L, 189L, 80L, 292L,
271L, 583L, 641L, 318L, 729L, 520L, 582L, 262L, 59L, 209L, 134L,
139L, 108L, 79L, 99L, 96L, 13L, 60L, 22L, 15L, 27L, 1L, 11L,
2L, 3L, 3L, 6L, 1L, 1L, 0L, 20L, 48L, 129L, 82L, 16L, 70L, 114L,
77L, 190L, 27L, 163L, 125L, 244L, 43L, 70L, 88L, 202L, 52L, 39L,
70L, 10L, 5L, 26L, 108L, 37L, 38L, 81L, 5L, 52L, 14L, 33L, 0L,
26L, 12L, 41L, 3L, 5L, 15L, 1L, 10L, 18L, 31L, 40L, 22L, 23L,
21L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 4L, 17L, 7L, 59L, 21L, 0L, 84L,
41L, 95L, 83L, 52L, 100L, 90L, 34L, 31L, 19L, 27L, 51L, 62L,
7L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L,
0L, 0L, 0L, 0L, 2L, 0L, 0L, 0L, 0L, 4L, 6L, 0L, 0L, 0L, 2L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 6L, 0L, 6L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 2L,
0L, 2L, 2L, 0L, 0L, 0L, 0L, 0L, 4L, 0L, 0L, 29L, 68L, 119L, 156L,
114L, 73L, 81L, 115L, 5L, 0L, 2L, 0L, 0L, 0L, 0L, 0L, 0L, 1L,
0L, 4L, 131L, 135L, 102L, 219L, 165L, 207L, 149L, 105L, 147L,
195L, 332L, 316L, 22L, 55L, 17L, 12L, 50L, 49L), Diptera = c(210L,
54L, 336L, 80L, 210L, 647L, 171L, 948L, 1495L, 751L, 877L, 912L,
1130L, 170L, 105L, 72L, 26L, 190L, 138L, 91L, 46L, 96L, 39L,
49L, 66L, 87L, 82L, 69L, 29L, 548L, 1240L, 810L, 999L, 521L,
784L, 504L, 800L, 1190L, 360L, 539L, 331L, 742L, 1041L, 742L,
154L, 787L, 479L, 411L, 1181L, 1350L, 1423L, 747L, 1827L, 1758L,
2L, 172L, 1L, 278L, 145L, 250L, 121L, 294L, 121L, 219L, 254L,
278L, 305L, 269L, 212L, 248L, 229L, 229L, 225L, 311L, 236L, 209L,
257L, 226L, 655L, 440L, 416L, 39L, 398L, 323L, 461L, 670L, 934L,
401L, 686L, 619L, 1043L, 1578L, 767L, 432L, 1754L, 1228L, 2164L,
585L, 1336L, 933L, 928L, 454L, 833L, 928L, 745L, 604L, 69L, 1052L,
1228L, 15L, 1835L, 1459L, 1408L, 170L, 1367L, 146L, 14L, 164L,
101L, 780L, 779L, 259L, 537L, 576L, 480L, 1076L, 577L, 119L,
58L, 853L, 529L, 724L, 1329L, 381L, 194L, 428L, 1240L, 1349L,
29L, 42L, 249L, 881L, 1122L, 456L, 837L, 162L, 751L, 281L, 421L,
36L, 803L, 553L, 562L, 1769L, 151L, 1019L, 34L, 158L, 736L, 472L,
254L, 666L, 853L, 1175L, 795L, 1627L, 1229L, 960L, 1659L, 1719L,
713L, 0L, 5L, 216L, 199L, 335L, 64L, 466L, 98L, 1385L, 1162L,
1545L, 1457L, 1215L, 614L, 1247L, 1697L, 620L, 895L, 1297L, 902L,
12L, 264L, 76L, 4L, 2L, 36L, 44L, 2L, 326L, 6L, 66L, 9L, 70L,
13L, 2L, 8L, 0L, 0L, 11L, 42L, 2L, 2L, 4L, 2L, 70L, 4L, 120L,
138L, 126L, 14L, 1L, 93L, 10L, 40L, 3L, 15L, 186L, 54L, 304L,
12L, 34L, 34L, 8L, 296L, 80L, 50L, 36L, 0L, 0L, 10L, 40L, 4L,
0L, 0L, 98L, 68L, 2L, 0L, 7L, 8L, 6L, 186L, 148L, 0L, 6L, 14L,
106L, 0L, 0L, 2L, 2L, 62L, 4L, 4L, 318L, 742L, 1099L, 298L, 553L,
867L, 716L, 556L, 91L, 154L, 89L, 16L, 114L, 21L, 49L, 130L,
46L, 94L, 58L, 349L, 967L, 828L, 857L, 765L, 847L, 459L, 725L,
731L, 409L, 432L, 805L, 565L, 967L, 953L, 1398L, 999L, 1081L,
1104L), Ephemeroptera = c(27L, 9L, 2L, 1L, 0L, 38L, 11L, 4L,
234L, 3L, 1L, 218L, 44L, 0L, 0L, 0L, 0L, 1L, 8L, 1L, 2L, 3L,
23L, 5L, 7L, 6L, 8L, 3L, 3L, 173L, 718L, 1264L, 825L, 464L, 478L,
456L, 816L, 481L, 811L, 652L, 146L, 686L, 563L, 372L, 190L, 419L,
158L, 63L, 244L, 141L, 267L, 236L, 100L, 99L, 0L, 0L, 0L, 10L,
3L, 1L, 0L, 3L, 0L, 14L, 9L, 0L, 5L, 5L, 1L, 29L, 21L, 0L, 45L,
29L, 1L, 14L, 9L, 1L, 134L, 300L, 15L, 46L, 170L, 272L, 100L,
325L, 146L, 436L, 544L, 27L, 9L, 40L, 41L, 103L, 63L, 84L, 103L,
629L, 133L, 584L, 74L, 25L, 191L, 489L, 212L, 304L, 118L, 78L,
76L, 0L, 20L, 238L, 373L, 4L, 69L, 3L, 0L, 0L, 121L, 266L, 273L,
104L, 209L, 356L, 203L, 461L, 53L, 60L, 5L, 130L, 25L, 135L,
163L, 56L, 81L, 884L, 358L, 432L, 32L, 98L, 1L, 26L, 18L, 10L,
11L, 1L, 68L, 3L, 9L, 0L, 32L, 5L, 41L, 106L, 85L, 240L, 27L,
15L, 113L, 613L, 786L, 572L, 394L, 306L, 84L, 0L, 76L, 11L, 11L,
261L, 192L, 40L, 35L, 30L, 266L, 34L, 7L, 293L, 41L, 167L, 253L,
103L, 93L, 233L, 362L, 408L, 173L, 440L, 145L, 162L, 11L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 2L, 0L, 0L, 0L, 0L, 0L, 8L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 467L, 430L, 177L, 291L, 392L,
231L, 82L, 361L, 29L, 0L, 31L, 0L, 16L, 0L, 3L, 17L, 8L, 15L,
27L, 45L, 111L, 82L, 133L, 163L, 96L, 85L, 76L, 72L, 121L, 127L,
69L, 109L, 443L, 221L, 114L, 421L, 183L, 156L), Hemiptera = c(27L,
2L, 1L, 1L, 0L, 3L, 1L, 0L, 10L, 6L, 0L, 8L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 3L, 0L, 0L, 0L, 1L, 1L, 1L, 0L, 0L, 1L, 0L, 0L, 0L,
0L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L,
0L, 1L, 2L, 0L, 0L, 1L, 0L, 1L, 1L, 0L, 1L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 1L, 0L, 0L, 4L, 2L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L,
2L, 1L, 1L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 2L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 5L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 1L, 0L, 3L, 0L, 0L, 2L, 10L, 0L, 0L, 0L, 2L, 2L, 50L, 8L,
47L, 0L, 320L, 98L, 5L, 0L, 287L, 314L, 16L, 14L, 236L, 14L,
2L, 627L, 279L, 6L, 254L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
1L, 0L, 0L, 0L, 0L, 0L, 16L, 4L, 0L, 8L, 12L, 36L, 6L, 14L, 104L,
0L, 5L, 94L, 10L, 0L, 82L, 10L, 94L, 48L, 2L, 0L, 2L, 44L, 8L,
6L, 0L, 16L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 2L, 0L, 2L, 0L, 1L, 20L, 1L, 4L, 1L, 1L, 1L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L), Trichoptera = c(0L,
0L, 11L, 0L, 4L, 1L, 0L, 25L, 3L, 2L, 3L, 0L, 9L, 0L, 0L, 2L,
2L, 12L, 12L, 7L, 8L, 4L, 8L, 1L, 11L, 9L, 12L, 15L, 10L, 307L,
332L, 224L, 92L, 210L, 213L, 239L, 195L, 75L, 372L, 5L, 6L, 12L,
14L, 12L, 2L, 17L, 35L, 30L, 33L, 17L, 13L, 33L, 10L, 8L, 0L,
0L, 0L, 26L, 4L, 3L, 4L, 7L, 1L, 22L, 7L, 6L, 11L, 4L, 10L, 35L,
11L, 4L, 61L, 21L, 6L, 19L, 17L, 16L, 417L, 250L, 225L, 34L,
375L, 396L, 84L, 188L, 55L, 55L, 98L, 1145L, 713L, 342L, 2387L,
1404L, 908L, 685L, 44L, 692L, 691L, 101L, 35L, 14L, 296L, 145L,
44L, 274L, 62L, 31L, 49L, 1L, 135L, 24L, 219L, 2L, 60L, 6L, 0L,
0L, 120L, 31L, 126L, 68L, 62L, 182L, 153L, 27L, 61L, 31L, 51L,
153L, 185L, 190L, 174L, 372L, 170L, 81L, 180L, 218L, 3L, 22L,
5L, 161L, 23L, 10L, 54L, 1L, 22L, 11L, 17L, 0L, 19L, 12L, 74L,
13L, 29L, 64L, 1L, 1L, 1L, 193L, 561L, 97L, 112L, 241L, 19L,
9L, 14L, 16L, 5L, 5L, 5L, 71L, 22L, 75L, 239L, 44L, 16L, 346L,
31L, 169L, 353L, 120L, 117L, 187L, 361L, 210L, 28L, 181L, 53L,
19L, 3L, 0L, 0L, 0L, 0L, 3L, 0L, 10L, 26L, 4L, 0L, 18L, 0L, 0L,
0L, 0L, 0L, 1L, 0L, 1L, 20L, 0L, 0L, 0L, 22L, 11L, 8L, 10L, 4L,
0L, 0L, 5L, 2L, 5L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 1L, 8L,
4L, 13L, 0L, 0L, 2L, 0L, 4L, 0L, 1L, 0L, 0L, 0L, 4L, 0L, 0L,
0L, 0L, 0L, 24L, 0L, 0L, 0L, 2L, 0L, 1L, 0L, 0L, 2L, 0L, 0L,
107L, 230L, 52L, 14L, 46L, 44L, 29L, 85L, 7L, 0L, 11L, 0L, 2L,
0L, 0L, 5L, 3L, 4L, 0L, 7L, 90L, 97L, 166L, 243L, 160L, 62L,
122L, 72L, 297L, 139L, 102L, 145L, 40L, 19L, 16L, 12L, 3L, 7L
), Trombidiformes = c(6L, 1L, 59L, 1L, 4L, 16L, 3L, 1L, 3L, 2L,
2L, 49L, 12L, 0L, 0L, 0L, 1L, 2L, 3L, 8L, 1L, 8L, 10L, 11L, 0L,
15L, 1L, 5L, 8L, 31L, 31L, 59L, 48L, 111L, 155L, 153L, 116L,
102L, 210L, 4L, 3L, 2L, 2L, 4L, 0L, 6L, 5L, 52L, 215L, 76L, 107L,
103L, 116L, 100L, 0L, 0L, 0L, 0L, 0L, 2L, 3L, 0L, 0L, 1L, 0L,
2L, 1L, 0L, 2L, 1L, 0L, 4L, 1L, 5L, 10L, 3L, 0L, 1L, 5L, 19L,
7L, 5L, 13L, 7L, 8L, 2L, 2L, 6L, 0L, 1L, 0L, 0L, 0L, 3L, 1L,
2L, 0L, 0L, 0L, 50L, 21L, 22L, 41L, 26L, 4L, 70L, 2L, 8L, 16L,
0L, 48L, 35L, 6L, 3L, 16L, 6L, 2L, 0L, 7L, 8L, 43L, 17L, 9L,
26L, 32L, 24L, 52L, 16L, 39L, 34L, 26L, 29L, 6L, 51L, 53L, 75L,
198L, 93L, 49L, 29L, 37L, 59L, 92L, 45L, 66L, 4L, 38L, 33L, 36L,
2L, 116L, 31L, 70L, 9L, 32L, 8L, 2L, 8L, 8L, 80L, 92L, 51L, 187L,
75L, 130L, 143L, 128L, 83L, 80L, 67L, 76L, 0L, 2L, 1L, 47L, 14L,
0L, 105L, 14L, 52L, 50L, 54L, 20L, 54L, 48L, 34L, 6L, 47L, 23L,
10L, 2L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 16L, 2L, 8L, 0L, 13L, 8L, 0L, 0L, 29L, 12L, 2L, 2L, 3L, 1L,
0L, 44L, 23L, 1L, 12L, 0L, 0L, 0L, 2L, 0L, 0L, 0L, 0L, 2L, 0L,
0L, 0L, 0L, 0L, 0L, 8L, 0L, 0L, 0L, 0L, 2L, 0L, 0L, 0L, 0L, 0L,
36L, 0L, 2L, 2L, 0L, 0L, 0L, 0L, 0L, 0L, 2L, 0L, 0L, 0L, 0L,
23L, 93L, 26L, 257L, 61L, 36L, 179L, 56L, 20L, 0L, 61L, 0L, 66L,
0L, 3L, 0L, 3L, 0L, 0L, 27L, 66L, 76L, 113L, 44L, 30L, 15L, 16L,
18L, 23L, 39L, 95L, 41L, 37L, 28L, 45L, 22L, 21L, 9L), Tubificida = c(20L,
0L, 13L, 1L, 34L, 77L, 11L, 379L, 147L, 184L, 267L, 197L, 313L,
2L, 1L, 10L, 1L, 2L, 9L, 15L, 25L, 9L, 4L, 7L, 21L, 20L, 4L,
30L, 3L, 17L, 11L, 15L, 0L, 2L, 8L, 139L, 133L, 292L, 158L, 94L,
13L, 42L, 73L, 53L, 81L, 79L, 277L, 15L, 2L, 14L, 42L, 54L, 41L,
59L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 1L, 0L, 15L, 112L, 0L, 7L, 18L,
1L, 15L, 18L, 4L, 5L, 67L, 0L, 9L, 41L, 4L, 0L, 0L, 0L, 0L, 0L,
1L, 1L, 0L, 0L, 0L, 0L, 2L, 34L, 5L, 33L, 5L, 22L, 25L, 48L,
0L, 3L, 16L, 9L, 0L, 152L, 10L, 1L, 13L, 4L, 0L, 25L, 1L, 65L,
3L, 10L, 18L, 11L, 33L, 13L, 38L, 0L, 29L, 36L, 21L, 10L, 11L,
16L, 16L, 73L, 2L, 0L, 538L, 773L, 88L, 347L, 58L, 54L, 0L, 2L,
14L, 0L, 0L, 5L, 23L, 12L, 60L, 10L, 13L, 21L, 14L, 8L, 2L, 29L,
4L, 5L, 23L, 11L, 21L, 41L, 196L, 128L, 0L, 0L, 0L, 0L, 0L, 9L,
5L, 3L, 67L, 19L, 3L, 7L, 0L, 0L, 3L, 3L, 4L, 0L, 14L, 3L, 77L,
188L, 73L, 78L, 163L, 13L, 73L, 13L, 20L, 61L, 33L, 2L, 0L, 0L,
0L, 0L, 0L, 12L, 410L, 124L, 80L, 0L, 42L, 1L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 116L, 0L, 0L, 1L, 0L, 0L, 0L, 2L, 0L, 0L, 0L, 14L,
8L, 2L, 0L, 0L, 0L, 0L, 0L, 6L, 2L, 3L, 96L, 0L, 10L, 148L, 12L,
17L, 2L, 0L, 0L, 18L, 0L, 0L, 0L, 2L, 2L, 0L, 2L, 3L, 2L, 0L,
34L, 16L, 0L, 24L, 0L, 82L, 0L, 0L, 0L, 0L, 18L, 0L, 0L, 6L,
18L, 39L, 41L, 16L, 27L, 31L, 27L, 44L, 0L, 136L, 5L, 32L, 0L,
256L, 164L, 305L, 224L, 244L, 160L, 63L, 63L, 68L, 37L, 209L,
52L, 47L, 51L, 81L, 12L, 45L, 49L, 1L, 28L, 0L, 0L, 22L, 1L),
aquaticSiteType = c("stream", "stream", "stream", "stream",
"stream", "stream", "stream", "stream", "stream", "stream",
"stream", "stream", "stream", "lake", "lake", "lake", "lake",
"lake", "lake", "lake", "lake", "lake", "lake", "lake", "lake",
"lake", "lake", "lake", "lake", "stream", "stream", "stream",
"stream", "stream", "stream", "stream", "stream", "stream",
"stream", "stream", "stream", "stream", "stream", "stream",
"stream", "stream", "stream", "stream", "stream", "stream",
"stream", "stream", "stream", "stream", "lake", "lake", "lake",
"lake", "lake", "lake", "lake", "lake", "lake", "lake", "lake",
"lake", "lake", "lake", "lake", "lake", "lake", "lake", "lake",
"lake", "lake", "lake", "lake", "lake", "stream", "stream",
"stream", "stream", "stream", "stream", "stream", "stream",
"stream", "stream", "stream", "stream", "stream", "stream",
"stream", "stream", "stream", "stream", "stream", "stream",
"stream", "stream", "stream", "stream", "stream", "stream",
"stream", "stream", "stream", "stream", "stream", "stream",
"stream", "stream", "stream", "stream", "stream", "stream",
"stream", "stream", "stream", "stream", "stream", "stream",
"stream", "stream", "stream", "stream", "stream", "stream",
"stream", "stream", "stream", "stream", "stream", "stream",
"stream", "stream", "stream", "stream", "stream", "stream",
"stream", "stream", "stream", "stream", "stream", "stream",
"stream", "stream", "stream", "stream", "stream", "stream",
"stream", "stream", "stream", "stream", "stream", "stream",
"stream", "stream", "stream", "stream", "stream", "stream",
"stream", "stream", "stream", "stream", "stream", "stream",
"stream", "stream", "stream", "stream", "stream", "stream",
"stream", "stream", "stream", "stream", "stream", "stream",
"stream", "stream", "stream", "stream", "stream", "stream",
"stream", "stream", "stream", "lake", "lake", "lake", "lake",
"lake", "lake", "lake", "lake", "lake", "lake", "lake", "lake",
"lake", "lake", "lake", "lake", "lake", "lake", "lake", "lake",
"lake", "lake", "lake", "lake", "lake", "lake", "lake", "lake",
"lake", "lake", "lake", "lake", "lake", "lake", "lake", "lake",
"lake", "lake", "lake", "lake", "lake", "lake", "lake", "lake",
"lake", "lake", "lake", "lake", "lake", "lake", "lake", "lake",
"lake", "lake", "lake", "lake", "lake", "lake", "lake", "lake",
"lake", "lake", "lake", "lake", "lake", "lake", "lake", "lake",
"lake", "lake", "lake", "lake", "lake", "lake", "stream",
"stream", "stream", "stream", "stream", "stream", "stream",
"stream", "lake", "lake", "lake", "lake", "lake", "lake",
"lake", "lake", "lake", "lake", "lake", "stream", "stream",
"stream", "stream", "stream", "stream", "stream", "stream",
"stream", "stream", "stream", "stream", "stream", "stream",
"stream", "stream", "stream", "stream", "stream")), class = "data.frame", row.names = c(NA,
-303L))
I run the NMDS code using the code below
set.seed(1)
metaMDS(comm = orders[,1:8], # Define the community data
distance = "bray", # Specify a bray-curtis distance
try = 100) # Number of iterations
It worked properly, when i assign it to another object, there is no solution
set.seed(1)
nmds = metaMDS(comm = orders[,1:8], # Define the community data
distance = "bray", # Specify a bray-curtis distance
try = 100) # Number of iterations
Best solution was not repeated -- monoMDS stopping criteria:
2: no. of iterations >= maxit
16: stress ratio > sratmax
2: scale factor of the gradient < sfgrmin
why is this happenning? i also tried with several seeds and without seeds also, but the problem is the same.
and then when i tried the score value to data frame
data_scores = as.data.frame(scores(nmds))
Error in (function (..., row.names = NULL, check.rows = FALSE, check.names = TRUE, :
arguments imply differing number of rows: 303, 8
Why I am getting this error?
metaMDS worked OK and gave you results. No problem.
Your problem was that you assumed that scores gives you a simple matrix-like object that can be converted to a data.frame. It does not, but it gives you a list of sample scores and species scores:
> str(scores(nmds))
List of 2
$ sites : num [1:303, 1:2] -0.051 0.426 0.129 0.385 0.127 ...
..- attr(*, "dimnames")=List of 2
.. ..$ : chr [1:303] "1" "2" "3" "4" ...
.. ..$ : chr [1:2] "NMDS1" "NMDS2"
$ species: num [1:8, 1:2] -1.178 0.351 0.269 0.339 -1.177 ...
..- attr(*, "dimnames")=List of 2
.. ..$ : chr [1:8] "Amphipoda" "Coleoptera" "Diptera" "Ephemeroptera" ...
.. ..$ : chr [1:2] "NMDS1" "NMDS2"
You have two alternatives:
Request only one kind of scores. For instance this gives you only sample scores.
> str(scores(nmds, display="sites"))
num [1:303, 1:2] -0.051 0.426 0.129 0.385 0.127 ...
- attr(*, "dimnames")=List of 2
..$ : chr [1:303] "1" "2" "3" "4" ...
..$ : chr [1:2] "NMDS1" "NMDS2"
Request "tidy" scores that pack species and site scores in one data frame and add a variable that identifies the type of scores:
> str(scores(nmds, tidy=TRUE))
'data.frame': 311 obs. of 4 variables:
$ NMDS1: num -0.051 0.426 0.129 0.385 0.127 ...
$ NMDS2: num -0.2518 -0.1687 -0.0795 0.069 0.2453 ...
$ score: chr "sites" "sites" "sites" "sites" ...
$ label: chr "1" "2" "3" "4" ...
There are two issues here. The first is the notice that "best solution was not repeated" and the second is the error trying to coerce the scores to a data.frame.
As noted in the answer by Jari Oksanen, the latter error is a consequence of trying to force an object to be a data.frame when it has dimensions that do not allow it to be coerced to a data.frame.
However, the much bigger issue is that you should not trust the scores in the first place because the model has not converged. From the metaMDS documentation:
Non-linear optimization is a hard task, and the best possible solution
(“global optimum”) may not be found from a random starting
configuration. Most software solve this by starting from the result of
metric scaling (cmdscale). This will probably give a good result, but
not necessarily the “global optimum”. Vegan does the same, but metaMDS
tries to verify or improve this first solution (“try 0”) using several
random starts and seeing if the result can be repeated or improved and
the improved solution repeated. If this does not succeed, you get a
message that the result could not be repeated. However, the result
will be at least as good as the usual standard strategy of starting
from metric scaling or it may be improved. You may not need to do
anything after such a message, but you can be satisfied with the
result. If you want to be sure that you probably have a “global
optimum” you may try the following instructions.
That different starting points (a) produce a solution but (b) the solution differs based on initial starts means the optimizer has found a local solution that can be arbitrarily far from the global solution. In other words, the results you obtain can be arbitrarily wrong and shouldn't be trusted. In other software, this would throw and not provide you the results because it wouldn't trust you not to use the known-to-be-unreliable results.
For some reason, the authors of this don't do that but you should not let their decision to make this a warning instead of an error be a reason to ignore the fundamental issues with the results.
You can follow the steps discussed in the documentation linked above to address this.
Data
Here is my data:
work <- structure(list(Mins_Work = c(435L, 350L, 145L, 135L, 15L, 60L,
60L, 390L, 395L, 395L, 315L, 80L, 580L, 175L, 545L, 230L, 435L,
370L, 255L, 515L, 330L, 65L, 115L, 550L, 420L, 45L, 266L, 196L,
198L, 220L, 17L, 382L, 0L, 180L, 343L, 207L, 263L, 332L, 0L,
0L, 259L, 417L, 282L, 685L, 517L, 111L, 64L, 466L, 499L, 460L
), Mins_Sleep = c(300L, 540L, 540L, 480L, 480L, 480L, 480L, 420L,
300L, 240L, 480L, 300L, 420L, 360L, 390L, 405L, 420L, 360L, 420L,
350L, 420L, 450L, 445L, 480L, 300L, 400L, 310L, 390L, 350L, 450L,
390L, 390L, 510L, 452L, 310L, 360L, 500L, 360L, NA, NA, 420L,
420L, 420L, 382L, 430L, 393L, 240L, 400L, 480L, 450L), Coffee_Cups = c(3L,
0L, 2L, 6L, 4L, 5L, 3L, 3L, 2L, 2L, 3L, 1L, 1L, 3L, 2L, 2L, 0L,
1L, 1L, 4L, 4L, 3L, 0L, 1L, 3L, 0L, 0L, 0L, 0L, 2L, 0L, 1L, 2L,
3L, 2L, 2L, 4L, 3L, 6L, 6L, 3L, 4L, 6L, 8L, 3L, 5L, 0L, 2L, 2L,
8L), Tea_Cups = c(2L, 4L, 2L, 0L, 0L, 2L, 0L, 2L, 4L, 0L, 0L,
0L, 2L, 6L, 5L, 0L, 2L, 0L, 2L, 4L, 0L, 0L, 0L, 2L, 1L, 0L, 4L,
4L, 4L, 2L, 1L, 0L, 2L, 0L, 0L, 4L, 2L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 2L, 0L, 1L, 0L, 2L, 0L), Time_Wake = c(500L, 715L, 600L,
600L, 700L, 600L, 700L, 500L, 500L, 500L, 500L, 700L, 645L, 700L,
630L, 645L, 700L, 600L, 700L, 550L, 700L, 730L, 725L, 800L, 600L,
640L, 600L, 730L, 650L, 830L, 630L, 630L, 830L, 722L, 641L, 800L,
720L, 700L, NA, NA, NA, 700L, 700L, 622L, 710L, 632L, 400L, 640L,
700L, 730L)), class = "data.frame", row.names = c(NA, -50L))
Oftentimes I have odd combinations of variables that don't neatly fit into a faceted grid in ggplot. As an example, here is a code to stack my numeric data into one plot:
work %>%
keep(is.numeric) %>%
gather() %>%
ggplot(aes(x=value))+
geom_density()+
facet_wrap(~key,
scales = "free")
However, as you can see, there are five plots, and arranging the rows and columns doesn't really fix the issue because it is an odd number:
I'm wonder if there is a possible way to paste in some kind of text box in this sixth quadrant of the faceted plot. I'm thinking something like this:
How can one accomplish this goal?
One option is to access the 'blank space' using gtable/grid, e.g.
library(tidyverse)
library(gtable)
library(grid)
work <- structure(list(Mins_Work = c(435L, 350L, 145L, 135L, 15L, 60L,
60L, 390L, 395L, 395L, 315L, 80L, 580L, 175L, 545L, 230L, 435L,
370L, 255L, 515L, 330L, 65L, 115L, 550L, 420L, 45L, 266L, 196L,
198L, 220L, 17L, 382L, 0L, 180L, 343L, 207L, 263L, 332L, 0L,
0L, 259L, 417L, 282L, 685L, 517L, 111L, 64L, 466L, 499L, 460L
), Mins_Sleep = c(300L, 540L, 540L, 480L, 480L, 480L, 480L, 420L,
300L, 240L, 480L, 300L, 420L, 360L, 390L, 405L, 420L, 360L, 420L,
350L, 420L, 450L, 445L, 480L, 300L, 400L, 310L, 390L, 350L, 450L,
390L, 390L, 510L, 452L, 310L, 360L, 500L, 360L, NA, NA, 420L,
420L, 420L, 382L, 430L, 393L, 240L, 400L, 480L, 450L), Coffee_Cups = c(3L,
0L, 2L, 6L, 4L, 5L, 3L, 3L, 2L, 2L, 3L, 1L, 1L, 3L, 2L, 2L, 0L,
1L, 1L, 4L, 4L, 3L, 0L, 1L, 3L, 0L, 0L, 0L, 0L, 2L, 0L, 1L, 2L,
3L, 2L, 2L, 4L, 3L, 6L, 6L, 3L, 4L, 6L, 8L, 3L, 5L, 0L, 2L, 2L,
8L), Tea_Cups = c(2L, 4L, 2L, 0L, 0L, 2L, 0L, 2L, 4L, 0L, 0L,
0L, 2L, 6L, 5L, 0L, 2L, 0L, 2L, 4L, 0L, 0L, 0L, 2L, 1L, 0L, 4L,
4L, 4L, 2L, 1L, 0L, 2L, 0L, 0L, 4L, 2L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 2L, 0L, 1L, 0L, 2L, 0L), Time_Wake = c(500L, 715L, 600L,
600L, 700L, 600L, 700L, 500L, 500L, 500L, 500L, 700L, 645L, 700L,
630L, 645L, 700L, 600L, 700L, 550L, 700L, 730L, 725L, 800L, 600L,
640L, 600L, 730L, 650L, 830L, 630L, 630L, 830L, 722L, 641L, 800L,
720L, 700L, NA, NA, NA, 700L, 700L, 622L, 710L, 632L, 400L, 640L,
700L, 730L)), class = "data.frame", row.names = c(NA, -50L))
p <- work %>%
keep(is.numeric) %>%
gather() %>%
ggplot(aes(x=value))+
geom_density()+
facet_wrap(~key,
scales = "free")
note <- paste("Notes on Plots:\n",
"- coffee skew\n",
"- sleep semi-normal\n",
"- work is weird\n",
"- etc\n",
"- etc")
p2 <- ggplot() +
annotate("text",
x = 0,
y = 0,
label = note,
size = 5,
hjust = 0) +
theme_void()
pg <- ggplotGrob(p)
#> Warning: Removed 5 rows containing non-finite values (stat_density).
p2g <- ggplotGrob(p2)
pl <- gtable_filter(pg, 'panel', trim=F)$layout
pg <- gtable_add_grob(pg, p2g, t=max(pl$t), l=max(pl$l), r = pl$r[3])
grid.newpage()
grid.draw(pg)
Created on 2022-09-15 by the reprex package (v2.0.1)
I wonder if this is the right direction to get you to start:
work %>%
keep(is.numeric) %>%
gather() %>%
ggplot(aes(x=value))+
geom_density(aes(color = key))+
facet_wrap(~key,
scales = "free")+
theme(
legend.position = c(.8, .3)
)
Edit
To keep original black color for all graphs
cols <- c("Mins_Work" = "black", "Mins_Sleep"="black", "Coffee_Cups"="black", "Tea_Cups" = "black",
"Time_Wake" = "black")
work %>%
keep(is.numeric) %>%
gather() %>%
ggplot(aes(x=value))+
geom_density(aes(color = key))+
facet_wrap(~key,
scales = "free")+
theme(legend.position = c(.8, .3))+
scale_color_manual(values = cols)
I have a data for which I like to plot a barplot with error bar.
My data is as below:
dput(level6.top35)
structure(list(patient = structure(c(3L, 3L, 3L, 1L, 1L, 1L,
4L, 4L, 4L, 5L, 5L, 6L, 6L, 6L, 7L, 7L, 7L, 8L, 8L, 8L, 9L, 9L,
9L, 10L, 10L, 10L, 11L, 11L, 11L, 2L, 2L, 2L), .Label = c("P1",
"P10", "P11", "P2", "P3", "P4", "P5", "P6", "P7", "P8", "P9"), class = "factor"),
visit = structure(c(1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L,
2L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L,
3L, 1L, 2L, 3L, 1L, 2L, 3L), .Label = c("V1", "V2", "V3"), class = "factor"),
Bacteroides = c(11095L, 9981L, 2426L, 6107L, 14806L, 785L,
34127L, 27590L, 4699L, 42464L, 32146L, 321L, 611L, 402L,
455L, 5597L, 475L, 2842L, 481L, 11508L, 2125L, 842L, 960L,
3215L, 12118L, 10526L, 517L, 67434L, 82449L, 419L, 25643L,
4455L), Clostridium = c(53693L, 51961L, 89862L, 1122L, 3987L,
3095L, 3083L, 372L, 1628L, 4L, 13L, 11346L, 47803L, 10120L,
939L, 2280L, 11355L, 18642L, 4358L, 53L, 47L, 22L, 44L, 1897L,
9328L, 4394L, 4886L, 7025L, 175L, 1522L, 14776L, 30405L),
Turicibacter = c(25L, 0L, 10L, 9L, 0L, 0L, 4428L, 382L, 827L,
18L, 0L, 370L, 106L, 2180L, 5789L, 422L, 4355L, 1585L, 21205L,
567L, 131028L, 32389L, 14953L, 50692L, 3666L, 9811L, 1694L,
123L, 103L, 475L, 1038L, 0L), Haemophilus = c(31L, 27L, 13L,
2693L, 530L, 908L, 103L, 217L, 22L, 21743L, 7413L, 40763L,
1303L, 40182L, 52L, 67L, 18501L, 7547L, 28384L, 756L, 19L,
43928L, 19930L, 433L, 70L, 952L, 16796L, 4415L, 88L, 0L,
4607L, 507L), Streptococcus = c(303L, 160L, 168L, 1205L,
8360L, 12927L, 8380L, 1341L, 306L, 865L, 3490L, 137L, 428L,
427L, 5215L, 861L, 11635L, 15341L, 7306L, 12963L, 192L, 1646L,
2311L, 645L, 9880L, 9314L, 9091L, 6649L, 7283L, 26253L, 21089L,
39463L), Intestinibacter = c(14L, 16L, 0L, 17L, 11L, 32L,
4991L, 17L, 76L, 13L, 0L, 8182L, 14976L, 8062L, 7529L, 917L,
6612L, 14714L, 23287L, 26558L, 32L, 10L, 46L, 18307L, 7201L,
11970L, 6983L, 2963L, 2172L, 1812L, 0L, 1115L), Ruminococcus = c(3237L,
7853L, 95L, 4209L, 380L, 105L, 4141L, 18344L, 16L, 4000L,
2374L, 17L, 690L, 33L, 3393L, 7285L, 259L, 11344L, 69L, 5175L,
46L, 13L, 64L, 156L, 8923L, 19573L, 60L, 6626L, 7614L, 188L,
998L, 109L), Veillonella = c(630L, 318L, 512L, 302L, 1739L,
420L, 779L, 495L, 11L, 538L, 2857L, 338L, 466L, 1777L, 37L,
423L, 2597L, 1330L, 457L, 1720L, 239L, 4659L, 1864L, 188L,
1062L, 4061L, 279L, 723L, 291L, 11009L, 14337L, 7129L), Sutterella = c(65L,
46L, 25L, 27L, 0L, 62L, 20L, 16L, 38L, 8499L, 7987L, 35L,
78L, 37L, 21L, 84L, 12L, 238L, 39L, 1746L, 26L, 31L, 65L,
383L, 11200L, 565L, 50L, 40L, 17L, 14L, 1407L, 353L), Epulopiscium = c(0L,
0L, 0L, 0L, 0L, 12L, 0L, 0L, 0L, 0L, 0L, 14447L, 8925L, 7733L,
0L, 6L, 20L, 823L, 158L, 84L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L), Faecalibacterium = c(184L, 203L, 154L,
113L, 92L, 135L, 111L, 144L, 102L, 1297L, 21410L, 132L, 185L,
138L, 127L, 151L, 135L, 204L, 173L, 128L, 203L, 148L, 191L,
177L, 169L, 171L, 193L, 150L, 133L, 169L, 4444L, 404L), Bifidobacterium = c(2288L,
8161L, 63L, 605L, 169L, 95L, 46L, 71L, 72L, 876L, 2540L,
60L, 467L, 73L, 578L, 1537L, 79L, 5413L, 73L, 543L, 127L,
86L, 144L, 76L, 775L, 71L, 84L, 80L, 64L, 47L, 49L, 70L),
Tyzzerella = c(18L, 0L, 0L, 559L, 0L, 0L, 1408L, 1666L, 0L,
86L, 373L, 0L, 373L, 0L, 439L, 235L, 107L, 21L, 0L, 0L, 0L,
0L, 25L, 134L, 4126L, 12034L, 4L, 0L, 0L, 0L, 47L, 0L), Lactobacillus = c(0L,
0L, 0L, 0L, 0L, 14L, 0L, 0L, 0L, 0L, 0L, 5L, 11L, 4L, 39L,
25L, 321L, 56L, 0L, 36L, 0L, 5L, 0L, 5L, 848L, 63L, 0L, 138L,
538L, 3801L, 122L, 4373L), Serratia = c(0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 128L, 69L, 0L, 0L, 0L, 0L, 0L, 226L, 0L,
0L, 0L, 0L, 0L, 7828L, 0L, 0L, 0L, 0L, 70L, 0L, 0L, 0L, 0L
), Rothia = c(0L, 0L, 11L, 6L, 16L, 24L, 0L, 0L, 5L, 0L,
0L, 0L, 0L, 10L, 0L, 9L, 11L, 140L, 267L, 175L, 0L, 190L,
4617L, 0L, 0L, 0L, 1362L, 19L, 47L, 518L, 21L, 34L), Anaerosporobacter = c(0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 256L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 31L, 3239L, 3546L, 0L, 0L,
0L, 0L, 0L, 0L), Erysipelatoclostridium = c(19L, 0L, 7L,
184L, 194L, 23L, 320L, 129L, 7L, 1151L, 436L, 20L, 52L, 0L,
862L, 1365L, 88L, 20L, 0L, 263L, 9L, 6L, 71L, 46L, 1175L,
217L, 0L, 190L, 98L, 0L, 72L, 26L), Paeniclostridium = c(0L,
0L, 0L, 0L, 303L, 0L, 0L, 0L, 0L, 0L, 0L, 129L, 9L, 339L,
0L, 0L, 66L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 5167L, 228L,
221L, 0L, 0L, 0L), Blautia = c(526L, 132L, 101L, 87L, 19L,
97L, 93L, 118L, 71L, 204L, 1356L, 70L, 105L, 84L, 71L, 144L,
88L, 649L, 136L, 627L, 156L, 88L, 142L, 83L, 139L, 138L,
134L, 122L, 81L, 99L, 98L, 125L), Anaerostipes = c(27L, 38L,
25L, 20L, 10L, 24L, 17L, 21L, 0L, 709L, 4603L, 23L, 24L,
20L, 0L, 178L, 18L, 30L, 42L, 24L, 29L, 16L, 37L, 23L, 57L,
39L, 29L, 29L, 16L, 26L, 25L, 27L), Enterococcus = c(31L,
32L, 26L, 126L, 68L, 2498L, 70L, 31L, 26L, 0L, 15L, 59L,
57L, 23L, 395L, 758L, 133L, 0L, 0L, 27L, 50L, 36L, 56L, 21L,
39L, 0L, 422L, 159L, 20L, 24L, 96L, 95L), Citrobacter = c(0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 3583L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 37L, 0L, 0L, 0L, 1088L, 0L, 0L, 0L, 0L, 0L, 144L,
0L, 0L, 0L, 0L), Prevotella = c(155L, 168L, 87L, 153L, 95L,
121L, 100L, 125L, 152L, 307L, 124L, 100L, 84L, 117L, 91L,
168L, 128L, 137L, 130L, 98L, 139L, 114L, 252L, 84L, 159L,
106L, 140L, 201L, 114L, 126L, 160L, 125L), Roseburia = c(621L,
19L, 0L, 0L, 0L, 0L, 0L, 18L, 0L, 46L, 32L, 17L, 13L, 0L,
0L, 36L, 17L, 160L, 0L, 109L, 18L, 15L, 22L, 77L, 1505L,
559L, 38L, 26L, 12L, 22L, 849L, 90L), Parabacteroides = c(60L,
18L, 12L, 114L, 9L, 49L, 349L, 593L, 60L, 158L, 162L, 46L,
53L, 42L, 17L, 33L, 29L, 197L, 49L, 458L, 42L, 45L, 83L,
271L, 479L, 429L, 51L, 63L, 76L, 0L, 85L, 47L), Neisseria = c(0L,
0L, 0L, 77L, 0L, 0L, 0L, 12L, 0L, 9L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 454L, 2L, 0L, 0L, 771L, 2662L, 4L, 0L, 11L, 10L,
0L, 0L, 0L, 0L, 0L), Actinobacillus = c(0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 2670L, 149L, 0L, 0L, 0L, 0L, 0L, 0L, 130L,
0L, 0L, 0L, 0L, 0L, 10L, 0L, 60L, 0L, 0L, 0L, 0L, 0L, 0L),
Granulicatella = c(59L, 27L, 22L, 18L, 22L, 14L, 19L, 36L,
76L, 37L, 0L, 0L, 0L, 61L, 60L, 24L, 93L, 90L, 457L, 60L,
52L, 42L, 215L, 0L, 40L, 45L, 665L, 14L, 27L, 260L, 34L,
46L), Actinomyces = c(52L, 27L, 12L, 8L, 8L, 16L, 36L, 16L,
89L, 12L, 23L, 13L, 0L, 53L, 18L, 0L, 30L, 112L, 624L, 89L,
12L, 45L, 116L, 11L, 58L, 12L, 587L, 65L, 47L, 135L, 18L,
35L), Lachnoclostridium = c(21L, 19L, 17L, 37L, 0L, 0L, 211L,
337L, 13L, 361L, 184L, 0L, 12L, 12L, 19L, 91L, 0L, 66L, 0L,
228L, 44L, 9L, 0L, 77L, 293L, 257L, 0L, 0L, 0L, 0L, 28L,
20L), Pediococcus = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 2101L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 9L, 0L, 0L, 0L, 0L, 0L, 0L), Fusobacterium = c(84L,
51L, 55L, 551L, 12L, 19L, 22L, 54L, 23L, 41L, 40L, 21L, 17L,
14L, 14L, 78L, 18L, 228L, 88L, 35L, 75L, 43L, 162L, 24L,
39L, 25L, 90L, 15L, 21L, 56L, 24L, 36L), Alistipes = c(68L,
81L, 24L, 69L, 35L, 66L, 40L, 57L, 60L, 86L, 72L, 48L, 47L,
60L, 51L, 92L, 48L, 67L, 72L, 36L, 40L, 65L, 137L, 21L, 31L,
65L, 84L, 100L, 93L, 42L, 81L, 41L), Eubacterium = c(0L,
7L, 0L, 0L, 0L, 0L, 0L, 0L, 8L, 12L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L)), .Names = c("patient", "visit", "Bacteroides", "Clostridium",
"Turicibacter", "Haemophilus", "Streptococcus", "Intestinibacter",
"Ruminococcus", "Veillonella", "Sutterella", "Epulopiscium",
"Faecalibacterium", "Bifidobacterium", "Tyzzerella", "Lactobacillus",
"Serratia", "Rothia", "Anaerosporobacter", "Erysipelatoclostridium",
"Paeniclostridium", "Blautia", "Anaerostipes", "Enterococcus",
"Citrobacter", "Prevotella", "Roseburia", "Parabacteroides",
"Neisseria", "Actinobacillus", "Granulicatella", "Actinomyces",
"Lachnoclostridium", "Pediococcus", "Fusobacterium", "Alistipes",
"Eubacterium"), class = "data.frame", row.names = c("AA_001_20-4-16",
"AA_001-V2", "AA_001_19-5-16", "AA_ISS-01-V1", "AA_ISS-01-V2",
"AA_ISS-01-V3", "AA_ISS-02-V1", "AA_ISS-02-V2", "AA_ISS-02-V3",
"AA_ISS-03-V1", "AA_ISS-03-V2", "AA_ISS-04-V1", "AA_ISS-04-V2",
"AA_ISS-04-V3", "AA_ISS-05-V1", "AA_ISS-05-V2", "AA_ISS-05-V3",
"AA_ISS-06-V1", "AA_ISS-06-V2", "AA_ISS-06-V3", "AA_ISS-07-V1",
"AA_ISS-07-V2", "AA_ISS-07-V3", "AA_ISS-08-V1", "AA_ISS-08-V2",
"AA_ISS-08-V3", "AA_ISS-09-V1", "AA_ISS-09-V2", "AA_ISS-09-V3",
"AA_ISS-10-V1", "AA_ISS-10-V2", "AA_ISS-10-V3"))
So far I have tried to reshape the data and few tries to plot them properly. But in vain.
library(reshape2)
df1<-melt(level6.top35, id.vars = c("patient","visit"))
ggplot(data=df1,aes(x=variable,y=value, fill=visit))+geom_bar(position="dodge",stat="identity")
+geom_errorbar( aes(x=variable, ymin=value-sd, ymax=value+sd), width=0.4, colour="orange", alpha=0.9, size=1.3)
I have managed to do the plot but not the errorbar. Ideally I like to have a barplot with the error bar.
You need to summarise the data and then add the error bars, e.g. like this:
df1 <- melt(level6.top35, id.vars = c("patient","visit"))
df1 %>% group_by(visit, variable) %>%
summarise(SD = sd(value), value = mean(value)) %>% ungroup() %>%
ggplot(., aes(x=variable, y=value, fill = visit)) +
geom_bar(stat="identity", position = "dodge") +
geom_errorbar(aes(ymin= value - SD, ymax = value + SD, width=0.2),
position=position_dodge(width=0.90)) +
theme(axis.text.x = element_text(angle = 90, hjust = 1))+
labs(x="Species")
It is still up to you to decide whether you want to just plot the positive bars, limit the y axis to avoid negative values, etc..
I fitted some GLMs with a binominal predictor and would like to plot them with visreg. I usually plot the raw data with par(new=T) as well for better clarity. I don't really like the normal outcome here (x-axis 0-1 in 0.2 steps, a lot of data points just at 0 and 1) and was thinking about plotting the visreg over boxplot since they look much better with binominal data. However, I can't get the two plots to align since there are always two different "starts" and "ends" in the plot. How can I make it so that the visreg line starts at the "No" and ends at the "Yes" of the boxplot?
fit <- glm (Cov.herb ~ Fire, family=gaussian, data=data)
boxplot(data$Cov.herb ~ data$Fire, ylim=c(0,100), axes=F, ylab="Herb cover [%]", xlab="Fire")
axis(1, xaxp=c(1,2,1), xaxt="n")
mtext(text=c("No","Yes"),side=1,line=0.5,at=c(1,2))
axis(2, las=1)
box()
par(new=T)
visreg(fit, scale = "response", type="conditional",line=list(col="red", lwd=1), ylim=c(0,100), xlim=c(0,1), rug=F, axes=F, ann=F)
example plot
Cheers,
Alex
data:
structure(list(Cov.herb = c(40L, 80L, 30L, 2L, 40L, 8L, 5L, 5L,
20L, 45L, 55L, 55L, 35L, 40L, 65L, 70L, 2L, 15L, 1L, 1L, 1L,
25L, 10L, 1L, 10L, 5L, 5L, 15L, 10L, 5L, 15L, 5L, 5L, 35L, 1L,
1L, 35L, 1L, 10L, 5L, 5L, 10L, 5L, 10L, 10L, 20L, 10L, 0L, 3L,
1L, 2L, 4L, 1L, 10L, 30L, 10L, 1L, 2L, 0L, 15L, 25L, 50L, 15L,
35L, 30L, 5L, 5L, 1L, 1L, 1L, 10L, 0L, 0L, 5L, 2L, 1L, 10L, 0L,
2L, 1L, 1L, 5L, 1L, 15L, 1L, 1L, 1L, 0L, 5L, 25L, 3L, 0L, 0L,
1L, 0L, 0L, 0L, 0L, 3L, 1L, 1L, 0L, 5L, 1L, 1L, 1L, 1L, 7L, 1L,
1L, 1L, 1L, 5L, 0L, 2L, 3L, 5L, 3L, 1L, 1L, 2L, 0L, 2L, 0L, 10L,
1L, 20L, 3L, 5L, 20L, 3L, 20L, 5L, 10L, 15L, 30L, 0L, 20L, 45L,
1L, 1L, 2L, 1L, 3L, 0L, 5L, 0L, 35L, 1L, 5L, 25L, 0L, 0L, 40L,
3L, 15L, 10L, 3L, 50L, 30L, 10L, 1L, 0L, 5L, 10L, 10L, 2L, 2L,
5L, 1L, 2L, 1L, 1L, 0L, 0L, 1L, 2L, 5L, 15L, 0L, 1L, 1L, 1L,
1L, 0L, 1L, 5L, 1L, 5L, 35L, 1L, 0L, 1L, 0L, 5L, 1L, 1L, 3L,
15L, 1L, 3L, 1L, 0L, 0L, 0L, 15L, 0L, 1L, 1L, 3L, 35L, 80L, 10L,
2L, 10L, 3L, 3L, 2L, 10L, 50L, 20L, 40L, 2L, 40L, 45L, 25L, 5L,
25L, 50L, 35L, 15L, 45L, 10L, 5L, 15L, 2L, 30L, 2L, 3L, 15L,
5L, 45L, 35L, 20L, 70L, 20L, 10L, 30L, 25L, 8L, 4L, 45L, 60L,
35L, 5L, 40L, 30L, 0L, 30L, 3L, 4L, 25L, 15L, 10L, 15L, 25L,
20L, 7L, 25L, 25L, 40L, 35L, 30L, 40L, 25L, 50L, 30L, 25L, 60L,
15L, 25L, 25L, 50L, 30L, 20L, 2L, 3L, 20L, 25L, 35L, 30L, 10L,
15L, 65L, 10L, 20L, 20L, 2L, 7L, 20L, 25L, 30L, 30L, 9L, 20L,
40L, 7L, 20L, 15L, 15L, 30L, 20L, 35L, 8L, 40L, 20L, 3L, 55L,
35L, 10L, 10L, 65L, 20L, 35L, 60L, 45L, 20L, 10L, 35L, 15L, 20L,
15L, 40L, 10L, 10L, 60L, 60L, 40L, 10L, 10L, 25L, 8L, 20L, 40L,
15L, 25L, 5L, 20L, 20L, 20L, 25L, 30L, 35L, 20L, 110L, 50L, 20L,
20L, 10L, 45L, 25L, 20L, 55L, 10L, 5L, 15L, 15L, 1L, 10L, 15L,
15L, 10L, 30L, 20L, 40L, 55L, 55L, 20L, 30L, 10L, 50L, 40L, 5L,
15L, 10L, 30L, 15L, 20L, 5L, 45L, 50L, 25L, 45L, 30L, 7L, 25L,
30L, 5L, 7L, 50L, 60L, 50L, 10L, 30L, 50L, 15L, 15L, 30L, 15L,
25L, 40L, 10L, 2L, 60L, 20L, 65L, 5L, 15L, 3L, 15L, 40L, 50L,
45L, 30L, 5L, 45L, 15L, 25L, 65L, 15L, 50L, 55L, 30L, 10L, 35L,
15L, 20L, 20L, 10L, 20L, 15L, 45L, 40L, 10L, 7L, 25L, 20L, 60L,
4L, 7L, 40L, 60L, 50L, 50L, 10L, 50L, 5L, 10L, 50L, 20L, 40L,
20L, 25L, 25L, 35L, 10L, 2L, 15L, 60L, 25L, 30L, 20L, 25L, 10L,
10L, 20L, 40L, 40L, 45L, 10L, 35L, 60L, 50L, 10L, 40L, 50L, 25L,
20L, 25L, 25L, 45L, 20L, 30L, 65L, 30L, 35L, 40L, 25L, 15L, 10L,
50L, 25L, 45L, 40L, 20L, 5L, 65L, 5L, 10L, 15L, 7L, 20L, 45L,
15L, 5L, 20L, 20L, 20L, 50L, 15L, 20L, 30L, 25L, 45L, 45L, 35L,
40L, 45L, 4L, 10L, 20L, 20L, 30L, 15L, 30L, 50L, 35L, 45L, 25L,
25L, 10L, 5L, 30L, 30L, 10L, 70L, 25L, 25L, 7L, 20L, 5L, 20L,
8L, 15L, 10L, 20L, 10L, 7L, 15L, 15L, 40L, 50L, 15L, 20L, 8L,
45L, 40L, 15L, 25L, 40L, 20L, 35L, 40L, 70L, 20L, 20L, 40L, 5L,
20L, 7L, 40L, 10L, 5L, 45L, 20L, 10L, 20L, 20L, 45L, 15L, 7L,
30L, 30L, 35L, 10L, 20L, 5L, 15L, 35L, 40L, 40L, 10L, 5L, 15L,
70L, 20L, 85L, 15L, 7L, 55L, 55L, 5L, 20L, 25L, 5L, 30L, 20L,
8L, 30L, 40L, 25L, 10L, 5L, 30L, 10L, 5L, 10L, 35L, 2L, 10L,
10L, 10L, 90L, 45L, 60L, 7L, 1L, 15L), Fire = c(0L, 1L, 0L, 1L,
0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 1L,
1L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 1L, 0L, 0L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 0L, 1L, 0L, 1L, 1L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 0L,
0L, 1L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 1L, 0L, 0L, 0L, 1L, 1L,
0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 1L, 1L, 0L, 0L, 0L, 0L, 0L, 0L,
1L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 1L, 1L, 1L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 1L,
0L, 0L, 1L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 1L, 1L, 0L, 1L, 1L, 0L, 1L, 1L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 1L, 1L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 1L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 1L,
0L, 0L, 1L, 1L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 1L, 0L, 0L,
1L, 1L, 1L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 1L, 1L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 0L,
1L, 0L, 0L, 1L, 0L, 1L, 0L, 1L, 1L, 1L, 0L, 0L, 0L, 0L, 0L, 0L,
1L, 0L, 1L, 0L, 0L, 0L, 1L, 1L, 0L, 0L, 0L, 0L, 1L, 1L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 1L, 0L, 1L, 1L, 1L, 1L, 1L,
1L, 0L, 0L, 0L, 1L, 1L, 0L, 0L, 1L, 0L, 0L, 0L, 1L, 1L, 1L, 0L,
1L, 1L, 1L, 0L, 0L, 0L, 0L, 1L, 1L, 0L, 0L, 1L, 0L, 0L, 0L, 0L,
1L, 1L, 0L, 0L, 0L, 0L, 0L, 1L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 1L, 1L,
1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 1L, 1L, 1L, 0L, 0L, 0L,
1L, 1L, 0L, 0L, 0L, 1L, 0L, 1L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 1L,
0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 1L, 1L, 0L, 0L,
0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L)), .Names = c("Cov.herb",
"Fire"), class = "data.frame", row.names = c(2L, 3L, 4L, 6L,
7L, 8L, 9L, 10L, 11L, 12L, 13L, 14L, 15L, 16L, 17L, 18L, 19L,
20L, 21L, 22L, 23L, 24L, 25L, 26L, 27L, 29L, 30L, 31L, 32L, 33L,
34L, 35L, 36L, 37L, 38L, 39L, 40L, 41L, 43L, 44L, 45L, 46L, 47L,
48L, 49L, 50L, 51L, 54L, 55L, 56L, 57L, 58L, 59L, 60L, 61L, 62L,
63L, 64L, 65L, 66L, 67L, 68L, 69L, 70L, 71L, 72L, 74L, 75L, 76L,
77L, 78L, 79L, 80L, 81L, 82L, 83L, 84L, 85L, 87L, 88L, 89L, 90L,
91L, 92L, 93L, 94L, 95L, 96L, 97L, 98L, 99L, 100L, 101L, 102L,
103L, 104L, 105L, 106L, 107L, 108L, 109L, 110L, 111L, 112L, 113L,
114L, 115L, 116L, 117L, 118L, 119L, 120L, 121L, 122L, 123L, 124L,
125L, 126L, 153L, 154L, 155L, 161L, 162L, 163L, 164L, 165L, 166L,
167L, 169L, 170L, 171L, 173L, 174L, 175L, 176L, 177L, 178L, 179L,
180L, 181L, 182L, 183L, 184L, 185L, 186L, 187L, 188L, 189L, 190L,
191L, 192L, 193L, 194L, 195L, 196L, 197L, 198L, 199L, 200L, 201L,
202L, 203L, 204L, 205L, 206L, 207L, 209L, 211L, 213L, 214L, 215L,
216L, 217L, 218L, 219L, 220L, 221L, 222L, 223L, 224L, 225L, 226L,
227L, 228L, 229L, 230L, 231L, 232L, 233L, 234L, 235L, 236L, 237L,
238L, 239L, 240L, 241L, 242L, 243L, 244L, 245L, 246L, 247L, 248L,
249L, 250L, 251L, 252L, 253L, 254L, 255L, 256L, 257L, 258L, 259L,
260L, 261L, 262L, 263L, 269L, 270L, 274L, 275L, 276L, 277L, 279L,
280L, 281L, 282L, 283L, 284L, 285L, 286L, 287L, 288L, 289L, 290L,
291L, 292L, 293L, 294L, 295L, 296L, 297L, 298L, 299L, 300L, 301L,
302L, 303L, 304L, 305L, 306L, 307L, 308L, 309L, 310L, 311L, 312L,
313L, 314L, 315L, 316L, 317L, 318L, 319L, 320L, 321L, 322L, 323L,
324L, 325L, 326L, 327L, 328L, 329L, 330L, 331L, 332L, 333L, 334L,
335L, 336L, 337L, 338L, 339L, 340L, 341L, 342L, 343L, 344L, 345L,
346L, 347L, 349L, 350L, 351L, 352L, 353L, 354L, 355L, 356L, 357L,
358L, 359L, 360L, 361L, 362L, 363L, 364L, 365L, 366L, 367L, 368L,
369L, 370L, 371L, 372L, 373L, 374L, 375L, 376L, 377L, 378L, 380L,
381L, 382L, 383L, 384L, 385L, 386L, 387L, 388L, 389L, 390L, 391L,
392L, 393L, 394L, 395L, 396L, 397L, 398L, 399L, 400L, 401L, 402L,
403L, 404L, 405L, 406L, 407L, 408L, 409L, 410L, 411L, 412L, 413L,
414L, 415L, 416L, 417L, 418L, 419L, 420L, 421L, 422L, 423L, 424L,
425L, 426L, 427L, 428L, 429L, 430L, 431L, 432L, 433L, 434L, 435L,
436L, 437L, 438L, 439L, 440L, 441L, 443L, 444L, 445L, 446L, 447L,
448L, 449L, 450L, 451L, 453L, 454L, 455L, 457L, 458L, 459L, 460L,
461L, 463L, 464L, 465L, 466L, 467L, 468L, 469L, 470L, 471L, 472L,
473L, 474L, 475L, 476L, 477L, 478L, 479L, 480L, 481L, 482L, 483L,
484L, 485L, 486L, 487L, 488L, 489L, 490L, 491L, 492L, 493L, 494L,
495L, 496L, 497L, 498L, 499L, 500L, 501L, 502L, 503L, 504L, 505L,
506L, 507L, 508L, 509L, 510L, 511L, 512L, 513L, 514L, 515L, 516L,
517L, 518L, 519L, 520L, 521L, 522L, 523L, 524L, 525L, 526L, 527L,
528L, 529L, 530L, 531L, 532L, 533L, 534L, 535L, 536L, 537L, 538L,
539L, 540L, 541L, 542L, 543L, 544L, 545L, 546L, 547L, 548L, 549L,
551L, 552L, 553L, 554L, 555L, 556L, 557L, 558L, 559L, 560L, 561L,
562L, 563L, 564L, 565L, 566L, 567L, 568L, 569L, 570L, 571L, 572L,
573L, 574L, 575L, 576L, 577L, 578L, 579L, 580L, 581L, 582L, 583L,
584L, 585L, 587L, 588L, 589L, 590L, 591L, 592L, 593L, 594L, 595L,
596L, 597L, 598L, 599L, 600L, 601L, 602L, 603L, 604L, 605L, 606L,
607L, 608L, 609L, 610L, 611L, 612L, 613L, 614L, 615L, 616L, 617L,
618L, 619L, 620L, 621L, 622L, 623L, 624L, 625L, 626L, 628L, 629L,
631L, 632L, 633L, 634L, 635L, 636L, 637L, 638L, 639L, 640L, 641L,
642L, 643L, 644L, 645L, 646L, 648L, 649L, 650L, 651L, 652L, 653L,
654L, 655L, 656L, 657L, 658L, 659L, 660L, 661L, 662L, 663L, 664L,
665L, 666L, 667L, 668L, 669L, 670L, 671L, 672L, 673L, 674L, 675L,
676L, 677L, 678L, 679L, 680L, 682L, 683L, 684L, 685L, 686L, 687L,
689L, 690L, 691L, 692L, 693L, 694L, 697L, 698L, 699L, 700L, 701L,
702L, 704L, 705L, 706L, 707L))
So, my point was that doing it this way would give you more flexibility with your plotting. For example,
# Fit model
fit <- glm (Cov.herb ~ Fire, family=gaussian, data=data)
# Get model data for plotting
vis.out <- visreg(fit, scale = "response", plot = FALSE)
# Load library
library(ggplot2)
# Create plot
p <- ggplot(data = data)
p <- p + geom_boxplot(aes(x = as.factor(Fire), y = Cov.herb, fill = as.factor(Fire)), alpha = 0.3, outlier.alpha = 1)
p <- p + xlab("Fire") + ylab("Herb cover [%]")
p <- p + geom_ribbon(data = vis.out$fit, aes(x = Fire + 1, ymin = visregLwr, ymax = visregUpr), fill = "lightgrey")
p <- p + geom_line(data = vis.out$fit, aes(x = Fire + 1, y = visregFit), colour = "salmon", size = 1.25)
p <- p + scale_x_discrete(labels = c("No", "Yes"))
p <- p + theme(legend.position = "none")
print(p)
gives,
Is that the sort of thing you're looking for? (You could also add all the data points using geom_point to plot on top of the boxes. I think that usually looks pretty cool.)