The pins package publishes data, models, and other R objects, making iteasy to share them across projects and with your colleagues. You can pinobjects to a variety of pin boards, including folders (to share on anetworked drive or with services like DropBox), RStudio Connect, AmazonS3, Azure storage and Microsoft 365 (OneDrive and SharePoint). Pins canbe automatically versioned, making it straightforward to track changes,re-run analyses on historical data, and undo mistakes.
pins 1.0.0 includes a new more explicit API and greater support forversioning. The legacy API (pin()
, pin_get()
, andboard_register()
) will continue to work, but new features will only beimplemented with the new API, so we encourage you to switch to themodern API as quickly as possible. Learn more invignette("pins-update")
.
To try out the development version of pins (which will become pins 1.0.0when released), you’ll need to install from GitHub:
remotes::install_github("rstudio/pins")
If you discover this breaks any of your existing code, please let usknow then revert to thereleased version:
install.packages("pins")
To use the pins package, you must first create a pin board. A good placeto start is board_folder()
, which stores pins in a directory youspecify. Here I’ll use a special version of board_folder()
calledboard_temp()
which creates a temporary board that’s automaticallydeleted when your R session ends. This is great for examples, butobviously you shouldn’t use it for real work!
library(pins)
board <- board_temp()
board
#> Pin board <pins_board_folder>
#> Path: '/tmp/RtmpxQu94x/pins-15f1d4a0c4d71'
#> Cache size: 0
You can “pin” (save) data to a board with pin_write()
. It takes threearguments: the board to pin to, an object, and a name:
board %>% pin_write(head(mtcars), "mtcars")
#> Guessing `type = 'rds'`
#> Creating new version '20210929T184444Z-f8797'
As you can see, the data saved as an .rds
by default, but depending onwhat you’re saving and who else you want to read it, you might use thetype
argument to instead save it as a csv
, json
, or arrow
file.
You can later retrieve the pinned data with pin_read()
:
board %>% pin_read("mtcars")
#> mpg cyl disp hp drat wt qsec vs am gear carb
#> Mazda RX4 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4
#> Mazda RX4 Wag 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4
#> Datsun 710 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1
#> Hornet 4 Drive 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1
#> Hornet Sportabout 18.7 8 360 175 3.15 3.440 17.02 0 0 3 2
#> Valiant 18.1 6 225 105 2.76 3.460 20.22 1 0 3 1
A board on your computer is good place to start, but the real power ofpins comes when you use a board that’s shared with multiple people. Toget started, you can use board_folder()
with a directory on a shareddrive or in dropbox, or if you use RStudioConnect you can useboard_rsconnect()
:
board <- board_rsconnect()
#> Connecting to RSC 1.9.0.1 at <https://connect.rstudioservices.com>
board %>% pin_write(tidy_sales_data, "sales-summary", type = "rds")
#> Writing to pin 'hadley/sales-summary'
Then, someone else (or an automated Rmd report) can read and use yourpin:
board <- board_rsconnect()
board %>% pin_read("hadley/sales-summary")
You can easily control who gets to access the data using the RStudioConnection permissions pane.
The pins package also includes boards that allow you to share data onservices like Amazon’s S3 (board_s3()
), Azure’s blob storage(board_azure()
), and Microsoft SharePoint (board_ms365()
). Learnmore in vignette("pins")
.
FPGA问题记录之: Warning (13024): Output pins are stuck at VCC or GND Warning (21074): Design contains 16 input pin(s) that do not drive logic 硬件平台:Cyclone IV E EP4CE10F17C8 开发平台:Quartus II 64-Bit Version 1
(92)Vivado时序约束TCL命令-get_pins 1 文章目录 1)文章目录 2)时序约束引言 3)FPGA时序约束课程介绍 4)Vivado时序约束TCL命令-get_pins 5)技术交流 6)参考资料 2 时序约束引言 1)什么是静态时序分析? 通俗来说:在输入信号到输出信号中,因为经过的传输路径、寄存器、门电路等器件的时间,这个时间就是时序。开发工具不知道我们路径上的要求,我们通过
马上:Android pins 模块化架构 主工程的代码堆积,造成包目录结构臃肿,难区分。借用pins工程结构暂时,其相互独立的代码进行区分,为后期模块组件化,留下了灵活性。 pins ,原理是gradle sourceSets , sourceSets { main { def dirs = ['p_vpos',//vpos
这个警告代表某个输出变量的值恒为1或0。 问题:编译后ERR和RxdEnd的值恒为0。 分析:找到ERR和RxdEnd的位置(43-50行),程序完全没进入43到50行的if语句,导致程序没有对上述两个变量的值进行任何操作。 原因:第二行rnd_cnt变量没有指定位宽,默认位宽是1,所以程序处理时rnd_cnt最大为2,没有办法加到43行的5,所以程序卡在43行之前没法前进处理ERR和RxdEnd
前言 先给出近期文章列表: 逻辑设计中复位的稳妥处理方法? 逻辑设计中需要显式地使用IBUF以及OBUF类似的原语吗? TCL中关于管脚(Ports)的一些使用方法? TCL中关于Pins的一些使用方法? TCL中关于Cells的一些使用方法? TCL中关于Nets的一些用法? 前面几篇关于TCL的文章都是关于某种对象单独的使用方法,这篇文章就要将他们都联系起来; 我们依然使用wavegen示例工