1

我有两个文件,正在使用 Rdiffobj在它们之间创建一个 HTML 差异文件。

当我在 RStudio 中运行 RScript 时,一切都很好,我得到了一个 diff HTML 文件,例如:

在此处输入图像描述

当我从命令行运行脚本时,HTML diff 文件如下所示: 在此处输入图像描述

如何从命令行运行 R 脚本并获得漂亮的 HTML 格式?

R 脚本和文本文件

原始文本文件 - file_name_original

Hello there I am a file
I have three lines
And no fourth line

更改的文本文件 - file_name_changed

Hello there I am a file
I have three lines but I am a little longer than usual
And no fourth line

R 脚本

library("diffobj")

file_name_diff <- "diff.html"

file_name_original <- # Path to original file
file_name_changed <- # Path to changed file

# Compare files
diff_content <- diffFile(current = file_name_original, 
                         target = file_name_changed, 
                         mode = "sidebyside",
                         format = "html")

writeLines(as.character(diff_content), file_name_diff)
4

1 回答 1

2

默认情况下diffFile(),根据 R 是否处于交互模式,其行为会有所不同,因此您需要使用参数interactive = TRUE来获得与控制台相同的结果。

使用文档中的函数示例:

library("diffobj")

file_name_diff <- "C:\\Path\\to\\file\\diff.html"

url.base <- "https://raw.githubusercontent.com/wch/r-source"
f1 <- file.path(url.base, "29f013d1570e1df5dc047fb7ee304ff57c99ea68/README")
f2 <- file.path(url.base, "daf0b5f6c728bd3dbcd0a3c976a7be9beee731d9/README")

res <- diffFile(f1,
                f2,
                mode = "sidebyside",
                format = "html",
                interactive = TRUE)

writeLines(as.character(res), file_name_diff)
于 2021-08-17T03:23:17.803 回答