撤消R中的命令

Rob*_*rto 10 r

我无法在R中找到撤销命令的效果(既不是R的简介也不是Nuts的R).在处理交互式图形时,我特别感兴趣的是撤消/删除.

你建议采用什么方法?

Dir*_*tel 26

您应该考虑采用不同的方法来实现可重复的工作:

  • 选择一个你喜欢的编辑器,它有R支持
  • 在"片段"中编写代码,即函数的短文件,然后使用编辑器/ R集成的工具将代码发送到R 解释器
  • 如果您犯了错误,请重新编辑您的代码段然后重新运行
  • 您将始终记录您所做的事情

所有这些在ESS中都非常有效,这就是为什么许多经验丰富的R 用户喜欢这种环境.但编辑是主观和个人的选择; 其他人喜欢Eclipse与StatET更好.对于Mac OS X和Windows也有其他解决方案,所有这些在此之前已经在SO和其他地方(如R列表)上进行过无数次讨论.


Jer*_*lim 13

总的来说,我确实采用了Dirk的策略.您应该将代码作为完全可重现的记录,以便将原始数据转换为输出.

但是,如果您有复杂的代码,则可能需要很长时间才能重新运行它.我有超过30分钟处理数据的代码(即导入,转换,合并等).在这些情况下,单个数据破坏代码行需要我等待30分钟才能恢复我的工作区.通过破坏代码的数据我的意思是:

  • x <- merge(x, y)
  • df$x <- df$x^2

例如,合并,用转换替换现有变量,删除行或列,等等.在这些情况下,这很容易,特别是在第一次学习R出错时.

为了避免等待这30分钟,我采取了几种策略:

  • 如果我要做一些可能会破坏我的活动对象的事情,我会先将结果复制到一个临时对象中.然后我将检查它是否与临时对象一起使用,然后重新运行用适当的对象替换它.例如,首先temp <- merge(x, y);检查它是否有效str(temp); head(temp); tail(temp)以及是否一切都很好x <- merge(x, y)
  • 在心理学研究中很常见,我经常有大量的数据框架,其中有数百个变量和不同的病例子集.对于给定的分析(例如,表格,图形,一些结果文本),我通常会将我需要的案例和变量的子集提取到一个单独的对象中进行分析,并在准备和完成我的时候使用该对象.分析代码.这样,我不太可能意外损坏我的主数据框.这假定分析结果不需要反馈到主数据框中.
  • 如果我已经完成了大量复杂的数据转换,我可能会保存核心工作区对象的副本.例如,save(x, y, z , file = 'backup.Rdata')那样,如果我犯了错误,我只需要重新加载这些对象.
  • df$x <- NULL 是一种删除您不想创建的数据框中的变量的便捷方法

但是,最后我仍然从头开始运行所有代码以检查结果是否可重现.

  • 同意.两年过去了,我在knitr中经常使用缓存. (2认同)