来自剪贴板的R data.table fread

jan*_*cki 7 excel clipboard r fread data.table

我想创建一个接口excel-R :: data.table.我想问一下如何在剪贴板中使用fread功能.以下代码运行良好,但我更喜欢使用fread而不是read.table(重现复制excel文件中的某些表并在R中运行上面的命令):

data.table(read.table("clipboard",sep="\t",header=TRUE))
Run Code Online (Sandbox Code Playgroud)

我尝试声明连接到剪贴板,但到目前为止无法使其工作.另外正如fread函数文档中所述,它会发生变化,有些东西可能会被弃用,因此有一个不会在不久的将来被弃用的解决方案可能会很好.剪贴板/ fread有限制吗?像65000行,或其他一些内存限制?

我还建议扩展data.table :: fread函数以默认接受'clipboard'连接,因为它当前与read.table一起工作.

谢谢

A5C*_*2T1 8

fread似乎没有这个功能,但是对于有限的使用,你可以轻松地为它编写自己的包装器.以下内容可能有助于您入门:

freadClip <- function(...) {
  X <- tempfile()
  writeLines(readLines("clipboard"), X)
  fread(X, ...)
}
Run Code Online (Sandbox Code Playgroud)

用法只是从Excel工作表复制单元格,切换回R,然后键入freadClip().

注意: 我假设这更像是一个便利功能 - 主要是为了快速从Excel中将一个小数据集转换为R.我不知道我是否会亲自使用"clipboard"65k行范围内的文件作为你在问题中描述.

  • 这取决于.如果你说'OS X`你有'pbpaste`命令,`fread`直接接受系统命令作为`character`参数.真的太神奇了!例如`fread("pbpaste")`,在Linux上我认为它叫做`xclip`.Windows似乎没有内置此功能(显然). (2认同)