As already posted in this answer, this now also works very nicely with sf:
fc <- sf::st_read("C:/path/to/your/filegeodatabase.gdb", layer = "some_featureclass")
But writing into a fgdb ist not implemented (yet?), you'd have to have a ArcGIS / ArcMap License as well as the R library arcgisbinding (see https://github.com/R-ArcGIS/r-bridge)
As @Erik said rule-based styling should work.
Another approach might be to use the catchment area of the school (vector) to spatially join the pupils (points) to that area. Then use the information inside the attribute table for your symbology rules.
Might be of help: Understanding Join Attributes by Location in QGIS?