The connector.sharepoint package provides a convenient interface for accessing and interacting with Microsoft SharePoint sites directly from R.
This vignette will guide you through the process of connecting to a SharePoint site, retrieving data, and performing various operations using this package.
The connector packages provide a set of functions to
read and write data from the datasources. They all have similar
interface, so it’s easy to switch between them.
Now, we will show how to read and write different types data from/to
Sharepoint. In these examples we will be using iris and
mtcars datasets.
Here is an example of writing data to the ADaM table:
library(dplyr)
# Manipulate data
## Iris data
setosa <- iris |>
filter(Species == "setosa")
mean_for_all_iris <- iris |>
group_by(Species) |>
summarise_all(list(mean, median, sd, min, max))
## mtcars data
cars <- mtcars |>
filter(mpg > 22)
mean_for_all_mtcars <- mtcars |>
group_by(gear) |>
summarise(
across(
everything(),
list("mean" = mean, "median" = median, "sd" = sd, "min" = min, "max" = max),
.names = "{.col}_{.fn}"
)
) |>
tidyr::pivot_longer(
cols = -gear,
names_to = c(".value", "stat"),
names_sep = "_"
)
## Store data
db$adam |>
write_cnt(x = setosa, name = "setosa.csv", overwrite = TRUE)
db$adam |>
write_cnt(mean_for_all_iris, "mean_iris.csv", overwrite = TRUE)
db$adam |>
write_cnt(cars, "cars_mpg.csv", overwrite = TRUE)
db$adam |>
write_cnt(mean_for_all_mtcars, "mean_mtcars.csv", overwrite = TRUE)Now, let’s read the data back manipulate it a bit and write it to the SharePoint. This way we can save different types of data in different formats.
library(gt)
library(tidyr)
library(ggplot2)
# List and load data
db$adam |>
list_content_cnt()
table <- db$adam |>
read_cnt("mean_mtcars.csv")
gttable <- table |>
gt(groupname_col = "gear")
# Save nontabular data to sharepoint
tmp_file <- tempfile(fileext = ".docx")
gtsave(gttable, tmp_file)
db$output |>
upload_cnt(tmp_file, "tmeanallmtcars.docx")
# Manipulate data
setosa_fsetosa <- db$adam |>
read_cnt("setosa.csv") |>
filter(Sepal.Length > 5)
fsetosa <- ggplot(setosa) +
aes(x = Sepal.Length, y = Sepal.Width) +
geom_point()
## Store data into output location
db$output |>
write_cnt(fsetosa$data, "fsetosa.csv")
db$output |>
write_cnt(fsetosa, "fsetosa.rds")
tmp_file <- tempfile(fileext = ".png")
ggsave(tmp_file, fsetosa)
db$output |>
upload_cnt(tmp_file, "fsetosa.png")In this vignette we showed how to connect to SharePoint site, read and write data from it. We also showed how to use the connector package to connect to SharePoint and how to manipulate data using the connector package.