运行Rscript与源的差异输出

时间:2015-09-06 12:16:02

标签: r encoding rscript

我有以下脚本:

TMemoryStream

当我运行city <- c("Екатеринбург", NA, "Курск", "Псков", "березники", "Челябинск", NA, "москва", "москва", "Петергоф/Санкт-Петербург", "Петергоф/Санкт-Петербург", "Волгоград", "Олегегорск", "СПб", "Москва", "Москва", "Москва ", "Санкт-Петербург") city[grep("^(москва|мск|msk)", city, ignore.case = TRUE)] <- "Москва" city[grep("питер|спб|spb|петербург", city, ignore.case = TRUE)] <- "Санкт-Петербург" city[grep("Москва|Санкт-Петербург", city, invert = TRUE)] <- "Другие города" print(city) 时,我得到了一些结果:

Rscript test.R

当我运行% Rscript test.R [1] "Другие города" "Другие города" "Другие города" "Другие города" [5] "Другие города" "Другие города" "Другие города" "Москва" [9] "Москва" "Санкт-Петербург" "Санкт-Петербург" "Другие города" [13] "Другие города" "Санкт-Петербург" "Москва" "Москва" [17] "Москва" "Санкт-Петербург" 时,我得到了不同的结果:

source("test.R")

我在以下情况下得到了正确的结果:

  • 使用% Rscript -e 'source("test.R")' [1] "Другие города" "Другие города" [3] "Другие города" "Другие города" [5] "Другие города" "Другие города" [7] "Другие города" "Москва" [9] "Москва" "Петергоф/Санкт-Петербург" [11] "Петергоф/Санкт-Петербург" "Другие города" [13] "Другие города" "Другие города" [15] "Москва" "Москва" [17] "Москва " "Санкт-Петербург" 运行脚本:Rscript
  • 逐行输入R会话中的命令

使用Rscript test.R我的结果不正确(source()或R会话内)。

系统信息可能会有所帮助:

Rscript -e

1 个答案:

答案 0 :(得分:2)

它与文件编码有关。将以下选项添加到sourceencoding="UTF-8", verbose=T

如果你不使用编码选项(保持verbose = T选项),你会在输出的顶部看到默认编码是encoding = "native.enc",这不是你想要的希腊字符。