semnar provides methods for
constructing and maintaining a database of presentations in R. The
presentations are either ones that the user gives or gave or
presentations at a particular event or event series.
semnar also provides methods
for the interactive mapping of the presentations using leaflet
by
grouping them according to country, city, year and other presentation
attributes (see ?plot.semnar
). The markers on the map come with popups
providing presentation details (title, institution, event, links to
materials and events, and so on).
You can install the development version from GitHub with:
# install.packages("devtools")
devtools::install_github("ikosmidis/semnar")
and the released version with:
install.packages("semnar")
add_presentation
is the main function for constructing and maintaining
a data base of presentations. For example, below I record the details of
a recent presentation I gave to the PhD students and PostDocs at
University of Warwick on workflows and task management.
library("semnar")
YRM <- event(event = "Young Researchers' Meeting",
country = "England",
city = "Coventry",
lon = -1.560843, lat = 52.384019,
link = "https://warwick.ac.uk/fac/sci/statistics/news/yrm/",
institution = "University of Warwick",
department = "Department of Statistics",
venue = "Mathematical Sciences Building")
IK <- presenter(name = "Ioannis", surname = "Kosmidis",
affiliation = "University of Warwick",
email = "ioannis.kosmidis@warwick.ac.uk",
link = "https://ikosmidis.com")
IK_talks <- add_presentation(presenter = IK,
title = "A workflow that most probably isn't yours",
type = "presentation",
event = YRM,
room = "M1.02",
materials = "https://ikosmidis.com/files/ikosmidis_YRM_2019.pdf",
start = "29 May 2019 4pm",
end = "29 May 2019, 17:00")
Here, I start by defining the event information using event()
, the
presenter information using presenter()
, and then supply the resulting
objects in an add_presentation()
call along with other
presentation-specific details. add_presentation
also provides
arguments for supplying the same event and presenter information (and
much more; see ?add_presentation
), but using the event()
and
presenter()
constructor is useful when there are many presentations in
the same event, and/or many presentations by the same presenter.
IK_talks
is now a structured data.frame
that also inherits from
class semnar
, including the supplied presentation details.
str(IK_talks)
#> Classes 'semnar' and 'data.frame': 1 obs. of 28 variables:
#> $ country : chr "England"
#> $ city : chr "Coventry"
#> $ state : logi NA
#> $ lon : num -1.56
#> $ lat : num 52.4
#> $ event : chr "Young Researchers' Meeting"
#> $ presenter_name : chr "Ioannis"
#> $ presenter_midname : logi NA
#> $ presenter_surname : chr "Kosmidis"
#> $ presenter_affiliation: chr "University of Warwick"
#> $ presenter_link : chr "https://ikosmidis.com"
#> $ presenter_email : chr "ioannis.kosmidis@warwick.ac.uk"
#> $ presenter_address : logi NA
#> $ title : chr "A workflow that most probably isn't yours"
#> $ link : chr "https://warwick.ac.uk/fac/sci/statistics/news/yrm/"
#> $ materials : chr "https://ikosmidis.com/files/ikosmidis_YRM_2019.pdf"
#> $ abstract : logi NA
#> $ venue : chr "Mathematical Sciences Building"
#> $ address : logi NA
#> $ postcode : logi NA
#> $ institution : chr "University of Warwick"
#> $ department : chr "Department of Statistics"
#> $ school : logi NA
#> $ type : chr "presentation"
#> $ room : chr "M1.02"
#> $ start : POSIXct, format: "2019-05-29 16:00:00"
#> $ end : POSIXct, format: "2019-05-29 17:00:00"
#> $ tag : logi NA
I can then add another presentation, conveniently, by piping IK_talks
forward into add_presentation
using the pipe operator |>
:
IK_talks <- IK_talks |>
add_presentation(presenter = IK,
country = "United States",
city = "Stanford",
lon = -122.165330, lat = 37.429464,
event = "useR! 2016",
title = "brglm: Reduced-bias inference in generalized linear models",
link = "https://user2016.r-project.org//files/abs-book.pdf",
materials = "https://bit.ly/2KCBbKg",
type = "presentation",
venue = "Stanford Institute for Economic Policy Research",
room = "Siepr 120",
start = "20160629 14:15", end = "20160629 14:35")
start
and end
are parsed using the
parsedate R package,
which allows for great flexibility in the format that dates/times are
supplied.
The details in the database can be mapped using leaflet:
plot(IK_talks, group = "city",
title = "<a href='https://cran.r-project.org/package=semnar'>semnar</a> map")
See ?plot.semnar
for the customization options plot.semnar
provides,
and my talks page for a live version
with talks I gave in the last few years…
jsonlite
can be directly used to export the
semnar databases into json
files, ready to use in other software:
library("jsonlite")
toJSON(IK_talks)
#> [{"country":"England","city":"Coventry","lon":-1.5608,"lat":52.384,"event":"Young Researchers' Meeting","presenter_name":"Ioannis","presenter_surname":"Kosmidis","presenter_affiliation":"University of Warwick","presenter_link":"https://ikosmidis.com","presenter_email":"ioannis.kosmidis@warwick.ac.uk","title":"A workflow that most probably isn't yours","link":"https://warwick.ac.uk/fac/sci/statistics/news/yrm/","materials":"https://ikosmidis.com/files/ikosmidis_YRM_2019.pdf","venue":"Mathematical Sciences Building","institution":"University of Warwick","department":"Department of Statistics","type":"presentation","room":"M1.02","start":"2019-05-29 16:00:00","end":"2019-05-29 17:00:00"},{"country":"United States","city":"Stanford","lon":-122.1653,"lat":37.4295,"event":"useR! 2016","presenter_name":"Ioannis","presenter_surname":"Kosmidis","presenter_affiliation":"University of Warwick","presenter_link":"https://ikosmidis.com","presenter_email":"ioannis.kosmidis@warwick.ac.uk","title":"brglm: Reduced-bias inference in generalized linear models","link":"https://user2016.r-project.org//files/abs-book.pdf","materials":"https://bit.ly/2KCBbKg","venue":"Stanford Institute for Economic Policy Research","type":"presentation","room":"Siepr 120","start":"2016-06-29 14:15:00","end":"2016-06-29 14:35:00"}]
Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.