Geom_text(): is.factor(x) 错误:找不到对象 'Year'

Geom_text(): Error in is.factor(x) : object 'Year' not found

我正在尝试将方差分析 p 值添加到我拥有的一组箱线图中。为了制作箱形图,我这样做了:

gg1 <- X2015_2019_R_Use %>% ggplot(aes(x = as.factor(Year), y = `Relative Abundance`, fill = as.factor(Year))) + geom_boxplot()+facet_grid(Site ~ Bacteria)+labs(x="Year",fill="Year")

效果很好。然后我制作了一个数据 table 以将 p 值添加到每个单独的方面:

dat_text<-data.frame(Bacteria= c("Acidobacteria","Actinobacteria","Alpha-Proteobacteria","Bacteroidetes","Verrucomicrobia","Acidobacteria","Actinobacteria","Alpha-Proteobacteria","Bacteroidetes","Verrucomicrobia"),Site = c("C1","C1","C1","C1","C1","C2","C2","C2","C2","C2"))
dat_text$label<-c("0.70338","0.4538","0.0617","0.00141","0.0680","0.00099","0.00941","0.01238","0.56500","0.723")

为了完成它,我在图表中添加了该文本:

gg1+geom_text(
     size    = 5,
     data    = dat_text,
     mapping = aes(x = Inf, y = Inf, label = label),
     hjust   = 1.05,
     vjust   = 1.5
  )

无论我如何尝试,我总是得到错误:Error in is.factor(x) : object 'Year' not found。 它肯定来自 geom_text(),但我不确定为什么。

任何帮助都会很棒!

编辑: 如果您使用以下数据,请将此用于 dat_text:

dat_text<-data.frame(Bacteria= c("Actinobacteria","Verrucomicrobia","Actinobacteria","Verrucomicrobia"),Site = c("C1","C1","C2","C2"))
dat_text$label<-c("0.70338","0.4538","0.0617","0.00141")

dput(X2015_2019_R_Use)

structure(list(`Site ID` = c(1501, 1501, 1501, 1502, 1502, 1502, 
1503, 1503, 1503, 1504, 1505, 1505, 1505, 1506, 1506, 1506, 1507, 
1507, 1507, 1508, 1508, 1508, 1603, 1603, 1603, 1604, 1604, 1604, 
1605, 1605, 1606, 1606, 1607, 1607, 1607, 1608, 1608, 1608, 1609, 
1609, 1609, 1610, 1610, 1610, 1861, 1861, 1861, 1862, 1862, 1862, 
1863, 1863, 1863, 1864, 1864, 1864, 1865, 1865, 1865, 1866, 1866, 
1866, 1867, 1867, 1867, 1868, 1868, 1868, 1901, 1901, 1901, 1902, 
1902, 1902, 1903, 1903, 1903, 1904, 1904, 1904, 1905, 1905, 1905, 
1906, 1906, 1906, 1907, 1907, 1907, 1908, 1908, 1908, 1501, 1501, 
1501, 1502, 1502, 1502, 1503, 1503, 1503, 1504, 1505, 1505, 1505, 
1506, 1506, 1506, 1507, 1507, 1507, 1508, 1508, 1508, 1603, 1603, 
1603, 1604, 1604, 1604, 1605, 1605, 1606, 1606, 1607, 1607, 1607, 
1608, 1608, 1608, 1609, 1609, 1609, 1610, 1610, 1610, 1861, 1861, 
1861, 1862, 1862, 1862, 1863, 1863, 1863, 1864, 1864, 1864, 1865, 
1865, 1865, 1866, 1866, 1866, 1867, 1867, 1867, 1868, 1868, 1868, 
1901, 1901, 1901, 1902, 1902, 1902, 1903, 1903, 1903, 1904, 1904, 
1904, 1905, 1905, 1905, 1906, 1906, 1906, 1907, 1907, 1907, 1908, 
1908, 1908), Year = c(2015, 2015, 2015, 2015, 2015, 2015, 2015, 
2015, 2015, 2015, 2015, 2015, 2015, 2015, 2015, 2015, 2015, 2015, 
2015, 2015, 2015, 2015, 2016, 2016, 2016, 2016, 2016, 2016, 2016, 
2016, 2016, 2016, 2016, 2016, 2016, 2016, 2016, 2016, 2016, 2016, 
2016, 2016, 2016, 2016, 2018, 2018, 2018, 2018, 2018, 2018, 2018, 
2018, 2018, 2018, 2018, 2018, 2018, 2018, 2018, 2018, 2018, 2018, 
2018, 2018, 2018, 2018, 2018, 2018, 2019, 2019, 2019, 2019, 2019, 
2019, 2019, 2019, 2019, 2019, 2019, 2019, 2019, 2019, 2019, 2019, 
2019, 2019, 2019, 2019, 2019, 2019, 2019, 2019, 2015, 2015, 2015, 
2015, 2015, 2015, 2015, 2015, 2015, 2015, 2015, 2015, 2015, 2015, 
2015, 2015, 2015, 2015, 2015, 2015, 2015, 2015, 2016, 2016, 2016, 
2016, 2016, 2016, 2016, 2016, 2016, 2016, 2016, 2016, 2016, 2016, 
2016, 2016, 2016, 2016, 2016, 2016, 2016, 2016, 2018, 2018, 2018, 
2018, 2018, 2018, 2018, 2018, 2018, 2018, 2018, 2018, 2018, 2018, 
2018, 2018, 2018, 2018, 2018, 2018, 2018, 2018, 2018, 2018, 2019, 
2019, 2019, 2019, 2019, 2019, 2019, 2019, 2019, 2019, 2019, 2019, 
2019, 2019, 2019, 2019, 2019, 2019, 2019, 2019, 2019, 2019, 2019, 
2019), Site = c("C1", "C1", "C1", "C1", "C1", "C1", "C1", "C1", 
"C1", "C1", "C2", "C2", "C2", "C2", "C2", "C2", "C2", "C2", "C2", 
"C2", "C2", "C2", "C1", "C1", "C1", "C1", "C1", "C1", "C1", "C1", 
"C1", "C1", "C2", "C2", "C2", "C2", "C2", "C2", "C2", "C2", "C2", 
"C2", "C2", "C2", "C1", "C1", "C1", "C1", "C1", "C1", "C1", "C1", 
"C1", "C1", "C1", "C1", "C2", "C2", "C2", "C2", "C2", "C2", "C2", 
"C2", "C2", "C2", "C2", "C2", "C1", "C1", "C1", "C1", "C1", "C1", 
"C1", "C1", "C1", "C1", "C1", "C1", "C2", "C2", "C2", "C2", "C2", 
"C2", "C2", "C2", "C2", "C2", "C2", "C2", "C1", "C1", "C1", "C1", 
"C1", "C1", "C1", "C1", "C1", "C1", "C2", "C2", "C2", "C2", "C2", 
"C2", "C2", "C2", "C2", "C2", "C2", "C2", "C1", "C1", "C1", "C1", 
"C1", "C1", "C1", "C1", "C1", "C1", "C2", "C2", "C2", "C2", "C2", 
"C2", "C2", "C2", "C2", "C2", "C2", "C2", "C1", "C1", "C1", "C1", 
"C1", "C1", "C1", "C1", "C1", "C1", "C1", "C1", "C2", "C2", "C2", 
"C2", "C2", "C2", "C2", "C2", "C2", "C2", "C2", "C2", "C1", "C1", 
"C1", "C1", "C1", "C1", "C1", "C1", "C1", "C1", "C1", "C1", "C2", 
"C2", "C2", "C2", "C2", "C2", "C2", "C2", "C2", "C2", "C2", "C2"
), `Unique ID` = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 13, 14, 15, 
16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 
32, 34, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 
50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 
66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 
82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 189, 
190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 
203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 
216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 
229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 
242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 
255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 
268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280
), Bacteria = c("Verrucomicrobia", "Verrucomicrobia", "Verrucomicrobia", 
"Verrucomicrobia", "Verrucomicrobia", "Verrucomicrobia", "Verrucomicrobia", 
"Verrucomicrobia", "Verrucomicrobia", "Verrucomicrobia", "Verrucomicrobia", 
"Verrucomicrobia", "Verrucomicrobia", "Verrucomicrobia", "Verrucomicrobia", 
"Verrucomicrobia", "Verrucomicrobia", "Verrucomicrobia", "Verrucomicrobia", 
"Verrucomicrobia", "Verrucomicrobia", "Verrucomicrobia", "Verrucomicrobia", 
"Verrucomicrobia", "Verrucomicrobia", "Verrucomicrobia", "Verrucomicrobia", 
"Verrucomicrobia", "Verrucomicrobia", "Verrucomicrobia", "Verrucomicrobia", 
"Verrucomicrobia", "Verrucomicrobia", "Verrucomicrobia", "Verrucomicrobia", 
"Verrucomicrobia", "Verrucomicrobia", "Verrucomicrobia", "Verrucomicrobia", 
"Verrucomicrobia", "Verrucomicrobia", "Verrucomicrobia", "Verrucomicrobia", 
"Verrucomicrobia", "Verrucomicrobia", "Verrucomicrobia", "Verrucomicrobia", 
"Verrucomicrobia", "Verrucomicrobia", "Verrucomicrobia", "Verrucomicrobia", 
"Verrucomicrobia", "Verrucomicrobia", "Verrucomicrobia", "Verrucomicrobia", 
"Verrucomicrobia", "Verrucomicrobia", "Verrucomicrobia", "Verrucomicrobia", 
"Verrucomicrobia", "Verrucomicrobia", "Verrucomicrobia", "Verrucomicrobia", 
"Verrucomicrobia", "Verrucomicrobia", "Verrucomicrobia", "Verrucomicrobia", 
"Verrucomicrobia", "Verrucomicrobia", "Verrucomicrobia", "Verrucomicrobia", 
"Verrucomicrobia", "Verrucomicrobia", "Verrucomicrobia", "Verrucomicrobia", 
"Verrucomicrobia", "Verrucomicrobia", "Verrucomicrobia", "Verrucomicrobia", 
"Verrucomicrobia", "Verrucomicrobia", "Verrucomicrobia", "Verrucomicrobia", 
"Verrucomicrobia", "Verrucomicrobia", "Verrucomicrobia", "Verrucomicrobia", 
"Verrucomicrobia", "Verrucomicrobia", "Verrucomicrobia", "Verrucomicrobia", 
"Verrucomicrobia", "Actinobacteria", "Actinobacteria", "Actinobacteria", 
"Actinobacteria", "Actinobacteria", "Actinobacteria", "Actinobacteria", 
"Actinobacteria", "Actinobacteria", "Actinobacteria", "Actinobacteria", 
"Actinobacteria", "Actinobacteria", "Actinobacteria", "Actinobacteria", 
"Actinobacteria", "Actinobacteria", "Actinobacteria", "Actinobacteria", 
"Actinobacteria", "Actinobacteria", "Actinobacteria", "Actinobacteria", 
"Actinobacteria", "Actinobacteria", "Actinobacteria", "Actinobacteria", 
"Actinobacteria", "Actinobacteria", "Actinobacteria", "Actinobacteria", 
"Actinobacteria", "Actinobacteria", "Actinobacteria", "Actinobacteria", 
"Actinobacteria", "Actinobacteria", "Actinobacteria", "Actinobacteria", 
"Actinobacteria", "Actinobacteria", "Actinobacteria", "Actinobacteria", 
"Actinobacteria", "Actinobacteria", "Actinobacteria", "Actinobacteria", 
"Actinobacteria", "Actinobacteria", "Actinobacteria", "Actinobacteria", 
"Actinobacteria", "Actinobacteria", "Actinobacteria", "Actinobacteria", 
"Actinobacteria", "Actinobacteria", "Actinobacteria", "Actinobacteria", 
"Actinobacteria", "Actinobacteria", "Actinobacteria", "Actinobacteria", 
"Actinobacteria", "Actinobacteria", "Actinobacteria", "Actinobacteria", 
"Actinobacteria", "Actinobacteria", "Actinobacteria", "Actinobacteria", 
"Actinobacteria", "Actinobacteria", "Actinobacteria", "Actinobacteria", 
"Actinobacteria", "Actinobacteria", "Actinobacteria", "Actinobacteria", 
"Actinobacteria", "Actinobacteria", "Actinobacteria", "Actinobacteria", 
"Actinobacteria", "Actinobacteria", "Actinobacteria", "Actinobacteria", 
"Actinobacteria", "Actinobacteria", "Actinobacteria", "Actinobacteria", 
"Actinobacteria"), `Relative Abundance` = c(4.92993e-06, 2.79252e-06, 
9.59025e-06, 2.96831e-05, 1.14048e-05, 5.86271e-06, 6.876e-06, 
1.02076e-05, 0, 7.42077e-06, 9.51129e-05, 0.003721242, 3.05584e-06, 
2.8315e-06, 0.000161073, 0, 0.001076079, 0, 0, 0, 0, 0.004245058, 
0.000324919, 3.27987e-06, 0, 2.82551e-06, 1.92284e-05, 6.60834e-05, 
0.000118806, 0.000286241, 0, 6.7034e-06, 8.66331e-06, 0.000267126, 
0.000136173, 1.75272e-05, 6.52129e-05, NA, 0.000299477, 0.000264087, 
0.000203973, 0.000347363, 0.000107514, 7.83871e-05, 4.72279e-05, 
7.72557e-05, 0.000416326, 0.001285187, 0.001873563, 9.57744e-05, 
4.31584e-05, 5.65544e-05, 4.02682e-05, 0.002743056, 0.000101235, 
0.000516122, 0.000109256, 0.000181216, 0.000149248, 0.000104081, 
0.000251004, 0.000622344, 0.001039424, 0.000434005, 0.000484908, 
0.000755647, 0.001053934, 0.000367492, 2.67877e-06, 3.86795e-06, 
0.000123977, 0.0001223, 0.000994536, 2.32033e-05, 0.000466998, 
0.000184167, 1.68707e-05, 1.40093e-05, 0, 0.000411027, 3.38058e-06, 
0.00193679, 5.77196e-05, 0.000305241, 1.37314e-05, 7.37933e-05, 
0.000639574, 9.85622e-08, 0, 0.001711992, 0.000286821, 0.000911554, 
0.152830035, 0.214641359, 0.103664943, 0.203063099, 0.078563336, 
0.193445624, 0.0625, 0.150725978, 0.095391201, 0.044501569, 0.180491149, 
0.100133735, 0.06886907, 0.173138684, 0.057114466, 0.056328154, 
0.029360086, 0.035896824, 0.02683017, 0.088388348, 0.092782723, 
0.05041511, 0.034535798, 0.093238297, 0.026582541, 0.045894041, 
0.07488104, 0.098722131, 0.09915842, 0.105207889, 0.122754859, 
0.133773621, 0.098786568, 0.113356563, 0.090065264, 0.00163082, 
0.082831295, 0.127928676, 0.158266465, 0.222865772, 0.071331106, 
0.129489195, 0.110818055, 0.046838606, 0.266092546, 0.152830035, 
0.143587294, 0.131648808, 0.176776695, 0.122427537, 0.160428237, 
0.143587294, 0.10153155, 0.123279088, 0.161544104, 0.230046913, 
0.11907975, 0.205897754, 0.131214585, 0.231647015, 0.275476279, 
0.171942727, 0.112656308, 0.216134308, 0.132127255, 0.087777805, 
0.159320078, 0.151774361, 0.074325445, 0.017824433, 0.315891949, 
0.183436627, 0.171320845, 0.12473423, 0.076779945, 0.092214737, 
0.06282578, 0.1121523, 0.043293606, 0.095564721, 0.067771728, 
0.135008349, 0.109801913, 0.107022492, 0.093463189, 0.117410678, 
0.11949425, 0.102192036, 0.131053478, 0.130832846, 0.102970362, 
0.086133158)), row.names = c(NA, -184L), class = c("tbl_df", 
"tbl", "data.frame"))

@Tung 关于 inherit.aes = FALSE 的注释以及更精确的 x/y 值,将为您提供所需的情节:

X2015_2019_R_Use %>% 
  mutate(Year = as.factor(Year)) %>%
  ggplot(aes(x = Year, y = `Relative Abundance`, fill = Year)) + 
  geom_boxplot() + 
  facet_grid(Site ~ Bacteria) + 
  geom_text(
    data = dat_text,
    mapping = aes(label = paste0("p = ", label)),
    x = "2019", y = .25, 
    inherit.aes = FALSE
  ) + 
  labs(x="Year", fill = "Year")

*请注意,鉴于其因子数据类型,x 需要指定为字符串而不是数字。