使用R pin数据传输

For data transfer between local and cloud

Tool
R
Author

Tony D

Published

March 15, 2025

A guide to using the pins package in R for data transfer and version control between local and online storage.

This document provides a comprehensive guide to using the pins package in R for efficient data transfer and version control. It demonstrates how to set up and use both local and online boards (with OneDrive as an example) to store and retrieve data and other files. The guide covers essential pins functions for uploading, downloading, listing, and managing different versions of your data, making it a valuable resource for creating reproducible and collaborative data science workflows.

The pins package is used for uploading and downloading data/models to online drives.

Code
pak::pkg_install("pins")
Code
library(pins)
library(tidyverse)

local board

use local location as a board

Code
board=board_folder(getwd())
Code
board %>% pin_list()

upload to local board

Code
board %>% pin_write(head(mtcars), "mtcars")

download from local board

Code
a=board %>% pin_read("mtcars")
a

upload file to board

Code
board %>% pin_upload('thumbnail.jpg','new.thumbnail.jpg')

list file in the board

Code
board %>% pin_list()

download file from board

Code
board %>% pin_download('new.thumbnail.jpg')

online one drive board

one drive as as a board

Code
od <- Microsoft365R::get_personal_onedrive()
board365 <- board_ms365(od, "myboard")

upload to one drive board

Code
board365 %>% pin_write(tail(mtcars), "mtcars")

download from one drive board

Code
board365 %>% pin_read("mtcars")

list file in the board

Code
board %>% pin_list()

using version

upload two data to mtcars with version control

Code
board %>% pin_write(tail(mtcars), "mtcars_version",versioned = TRUE)
board %>% pin_write(head(mtcars), "mtcars_version",versioned = TRUE)

there will be two version

Code
board %>% pin_versions("mtcars_version")

download version file from board

Code
# board %>% pin_read("mtcars_version",version = '20230704T095208Z-8df40')
board %>% pin_read("mtcars_version",version = .Last.value$version[[1]])

Reference

RStudio’s {pins} package: what it is, how it works, and what it can do for you! || RStudio https://www.youtube.com/watch?v=3Yk6U_XqxNo

Javier Luraschi | Datasets in Reproducible Research with ‘pins’ | RStudio (2020) https://www.youtube.com/watch?v=xwItECnphRU

pins doc: https://pins.rstudio.com/

Ep 5: Keeping data up-to-date with 6 pins workflows | Posit Team: https://www.youtube.com/watch?v=t8A-ysXinpE