之前看到新闻,收纳工还变成了热门职业:

07. R 代码的收纳工--datapasta - 图1

看来好好收拾也是一项厉害的技能。

R 一样啊,有时候乱七八糟的数据代码,看得让人头皮发麻。

参见:https://mp.weixin.qq.com/s/VOE3wV4-p_u72pH6Is0gsQ

收拾外部复制粘贴的内容

我们有的时候从网站或者paper中复制内容,粘贴到R中,还需要我们手动去分离,做成字符串。当然,如果要做成数据框的话,就更加麻烦了,需要多次手动复制粘贴。

这里可以直接使用R 包datapasta,将数据内容复制到R 中,会自动生成指定类型的转换代码,很容易就可以生成R 对象了。

包的主页在:https://github.com/MilesMcBain/datapasta

可以查看官网的一段演示:

https://raw.githubusercontent.com/milesmcbain/datapasta/master/inst/media/tribble_paste.gif

非常简单的安装配置:

  1. install.packages("datapasta")

如果是linux 用户,还需要特别留意:

07. R 代码的收纳工--datapasta - 图2

接着配置快捷键:

Tools -> Addins -> Browse Addins, then click Keyboard Shortcuts

一共可以复制粘贴五种形式:

07. R 代码的收纳工--datapasta - 图3

这里作者推荐的快捷键分别是:

  1. tribble_paste which pastes a table as a nicely formatted call to tibble::tribble()
  2. Recommend Ctrl + Shift + t as shortcut.
  3. Table can be delimited with tab, comma, pipe or semicolon.
  4. vector_paste which will paste delimited data as a vector definition, e.g. c("a", "b") etc.
  5. Recommend Ctrl + Alt + Shift + v as shortcut.
  6. vector_paste_vertical which will paste delimited data as a vertically formatted vector definition.
  7. Recommend Ctrl + Shift + v as shortcut

接下来就很容易了,直接复制内容,然后到选定的位置,按快捷键即可,比如向量:

  1. tmp <- c("tribble_paste which pastes a table as a nicely formatted call to tibble::tribble()", "Recommend Ctrl + Shift + t as shortcut.", "Table can be delimited with tab, comma, pipe or semicolon.", "vector_paste which will paste delimited data as a vector definition, e.g. c(\"a\", \"b\") etc.", "Recommend Ctrl + Alt + Shift + v as shortcut.", "vector_paste_vertical which will paste delimited data as a vertically formatted vector definition.", "Recommend Ctrl + Shift + v as shortcut")

收拾自己的代码

包括两个选项,依旧是在快捷键中配置:07. R 代码的收纳工--datapasta - 图4

Fiddle Selection 有两个用途,可以给空格间隔的字符加上向量符号和逗号间隔:

  1. sad, sdsad, asd, sad
  2. c(sad, sdsad, asd, sad)

还可以整理数据框:

  1. data.frame(sda = c("sd","sd"), asd = c("qqq",'ccc'))
  2. data.frame(
  3. stringsAsFactors = FALSE,
  4. sda = c("sd", "sd"),
  5. asd = c("qqq", "ccc")
  6. )

Toggle Vector Quotes 则可以给c() 包裹的内容加上双引号。

通过二者的组合,我们可以非常方便的创建向量了。

07. R 代码的收纳工--datapasta - 图5

这里还有一段介绍视频,挺酷的!

https://www.youtube.com/watch?v=Sz-tEVqZh5s&ab_channel=MilesMcBain