我的 R 脚本相同吗?

问题描述 投票:0回答:3

我认为这一定是重复的,但我似乎无法在堆栈上找到答案。有没有办法比较同一个 wd 中的两个 R 脚本,看看它们是否相同?

类似:

a <- source("script1.R")
b <- source("script2.R")

identical(a, b)

我不仅仅指每个脚本中的功能,还指所有其他内容,例如注释等。

谢谢

r
3个回答
13
投票

我制作了三个文件(每个文件都以换行符结尾):

iscript.R

script

iscript2.R

script

niscript.R

not script

使用工具中的

md5sum
函数,我得到了 :

的哈希值
tools::md5sum(c("iscript.R", "iscript2.R", "niscript.R"))
                         iscript.R                         iscript2.R                         niscript.R 
"95d26f42dccb2ec048a30261e0e2863f" "95d26f42dccb2ec048a30261e0e2863f" "d4bef1be4af7baedd2d69e649feb01d1" 

具有相同哈希值的文件是相同的。


1
投票

要并排比较 2 个 R 脚本并查看颜色差异,您可以使用 https://stackoverflow.com/a/53333988/4562326

上找到 @Agile Bean 提供的这个简单且有效的解决方案
library(diffr)
diffr(filename1, filename2)

0
投票

如果您需要并排比较两个或三个脚本。

您可以使用 WinMerge 等开源软件对脚本中的实际文本进行一对一的视觉比较。您将需要保存脚本文本文件以用作输入

更多信息可以在这里找到:https://winmerge.org/downloads/?lang=en

另一种选择是使用 SublimeText: 在 Sublime Text 中比较两个文件的内容

这两个工具都允许您将 diff 文件打印为 PDF。

© www.soinside.com 2019 - 2024. All rights reserved.