使用Clipr读取-写入剪贴板

在R语言中,使用 Clipr 读写剪贴板

​ clipr 是一个简单的实用程序,可以读取和写入 Windows、OS X 和类 Unix 系统(需要 xclip 或 xsel)的系统剪贴板。其中包含read_clip()write_clip()read_clip_tbl()三个关键函数。

https://www.rdocumentation.org/packages/clipr/versions/0.8.0

在这里插入图片描述

1. 安装

从 CRAN 安装:

install.packages("clipr")

或尝试开发版本:

remotes::install_github("mdlincoln/clipr")

2. 使用

加载 clipr 库:

library("clipr")
#> 欢迎使用 clipr。请参阅 ?write_clip 了解在 R 中写入剪贴板的建议。
开始前:检查系统剪贴板是否可用
clipr_available()
2.1 使用read_clip()读取剪贴板内容:
cb <- read_clip()
2.2 使用write_clip()将文本写入剪贴板:
res <- write_clip(c("Text", "for", "clipboard"))
res
#> [1] "Text"      "for"       "clipboard"
将字符串写入剪贴板时,指定 return_new = TRUE。使用换行符进行折叠,除非另有指定。
# 默认写入剪贴板时以换行符分隔(可以直接复制到Execl表格)
cb <- write_clip(c("Text", "for", "clipboard"), return_new = TRUE)
cb
#> [1] "Text\nfor\nclipboard"

# 指定写入剪贴板时以逗号分隔(可以直接生成.csv表格)
cb <- write_clip(c("Text", "for", "clipboard"), breaks = ", ", return_new = TRUE)
cb
#> [1] "Text, for, clipboard"
write_clip 函数的return_new参数智能地处理数据框和矩阵,使用 write.table渲染它们,以便可以粘贴到像 Excel 这样的电子表格中。
tbl <- data.frame(a = c(1, 2, 3), b = c(4, 5, 6))
cb <- write_clip(tbl, return_new = TRUE)
cb
#> [1] "a\tb\n1\t4\n2\t5\n3\t6"
2.3 使用read_clip_tbl() 将尝试将电子表格中的剪贴板内容直接解析为数据框。
read_clip_tbl() # 智能读取数据框
#  a b
#1 1 4
#2 2 5
#3 3 6
read_clip() # 直接读取字符串
#[1] "a\tb" "1\t4" "2\t5" "3\t6"
结束后:清空剪贴板
clear_clip()

3. 示例 – 在shiny中为用户提供“复制到剪贴板”按钮

library(shiny)
library(clipr)

#### Shiny 中调用剪切板 ####

ui <- fluidPage(
  titlePanel("复制数据到剪切板"),
  actionButton("copyBtn", "复制数据"),
  tableOutput("dataTable")
)

server <- function(input, output) {
  # 示例数据框
  data <- reactive({
    data.frame(
      Name = c("Alice", "Bob", "Charlie"),
      Age = c(25, 30, 35)
    )
  })
  
  # 显示数据框
  output$dataTable <- renderTable({
    data()
  })
  
  # 监听按钮点击事件
  observeEvent(input$copyBtn, {
    clipr::write_clip(data(), allow_non_interactive = TRUE)
  })
}

shinyApp(ui, server)

#### 实际上rclipboard包能更好兼容远程用户的剪贴板 ####

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值