前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >23. R 茶话会(四:R 代码的收纳工二弟)

23. R 茶话会(四:R 代码的收纳工二弟)

作者头像
北野茶缸子
发布2021-12-17 09:16:37
3200
发布2021-12-17 09:16:37
举报
文章被收录于专栏:北野茶缸子的专栏

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

为什么是二弟呢?

因为大哥已经先被介绍了:22. R 茶话会(三:美化/格式化 代码)

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

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

R 一样啊,有时候乱七八糟的数据代码,看得让人头皮发麻。有的时候,要是因为代码混乱,报错就更糟糕了:

收拾外部复制粘贴的内容

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

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

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

可以查看官网的一段演示:https://raw.githubusercontent.com/milesmcbain/datapasta/master/inst/media/tribble_paste.gif

非常简单的安装配置:

代码语言:javascript
复制
install.packages("datapasta")

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

接着配置快捷键:Tools -> Addins -> Browse Addins, then click Keyboard Shortcuts

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

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

代码语言:javascript
复制
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

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

代码语言:javascript
复制
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")

收拾自己的代码

包括两个选项,依旧是在快捷键中配置:

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

代码语言:javascript
复制
sad, sdsad, asd, sad
c(sad, sdsad, asd, sad)

还可以整理数据框:

代码语言:javascript
复制
data.frame(sda = c("sd","sd"), asd = c("qqq",'ccc'))
data.frame(
  stringsAsFactors = FALSE,
               sda = c("sd", "sd"),
               asd = c("qqq", "ccc")
)

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

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

这里还有一段介绍视频,挺酷的!https://www.youtube.com/watch?v=Sz-tEVqZh5s&ab_channel=MilesMcBain

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-09-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 北野茶缸子 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 收拾外部复制粘贴的内容
  • 收拾自己的代码
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档