gpt4 book ai didi

r - 从 saveRDS() 语句自动写入 readRDS() 语句

转载 作者:行者123 更新时间:2023-12-04 10:34:59 30 4
gpt4 key购买 nike

我经常写saveRDS()大量数据修改后的声明,这促使我立即写 readRDS()将来,可重现编码访问 .RDS 文件以更快地加载到 R .我的手动生成过程 readRDS()来自输入的语句 saveRDS()声明概述如下。如何改进?在 EMACS 中,我如何编写宏/函数来为我执行此操作和/或 R ?

## I type these out:
saveRDS(dems,"./_00_data_original/dems.RDS")
saveRDS(meds,"./_00_data_original/meds.RDS")
saveRDS(anti,"./_00_data_original/anti.RDS")

## Then I rectangle kill (C-x-r-k) the file names and commas
## and rectangle yank (C-x-r-y) them on the left hand side
## note: depends on filenames being equal lengths
dems,saveRDS("./_00_data_original/dems.RDS")
meds,saveRDS("./_00_data_original/meds.RDS")
anti,saveRDS("./_00_data_original/anti.RDS")

## then I Esc-Shift-5 to query replace ",saveRDS" with " <- readRDS"
dems <- readRDS("./_00_data_original/dems.RDS")
meds <- readRDS("./_00_data_original/meds.RDS")
anti <- readRDS("./_00_data_original/anti.RDS")

最佳答案

我能想到的两种方法是使用宏或多个游标。



我经常创建在单行上工作的宏,宏的最后一个 Action 是向下移动到下一行,所以我可以快速重复。

在这种情况下,在复制并粘贴 saveRDS 块后,在第一行:开始录制宏并执行以下操作:

  • 转到行首
  • 前进两个字
  • 标记并剪切光标后面的单词
  • 删除逗号
  • 转到行首
  • 猛拉
  • 插入“<-阅读”
  • 删除接下来的 4 个字符(保存)
  • 向下移动 1 行。
  • 停止录制宏

  • 关键是以一种能够普遍应用于具有给定格式的所有行的方式记录宏。确保文件名类似于“foo-bar baz”的行可以被宏转换,也可以通过使用诸如 forward-word 之类的东西来转换像“bar”这样的简单文件名。或 forward-sexp而不是逐个字符移动。

    然后你可以使用 C-xe 在下一行运行宏,然后按 e 在下一行再次运行它直到完成。您也使用前缀参数,因此如果您知道要将其应用于 10 行,则可以使用 C-u10C-xe

    这里我在第一行记录宏,稍等片刻,然后快速将其应用到下面的两行。

    enter image description here

    您可以使用 name-last-kbd-macro 将此宏保存在您的初始化中和 insert-kbd-macro并在以后的 session 中像命令一样使用它。

    多个光标

    或者您可以使用多个光标,这将允许您执行与宏相同的操作,但同时在所有行上。

    https://github.com/magnars/multiple-cursors.el

    enter image description here

    关于r - 从 saveRDS() 语句自动写入 readRDS() 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25510858/

    30 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com