差异输出 运行 Rscript 与源
Difference output running Rscript vs source
我有以下脚本:
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
: Rscript test.R
- 在 R 会话中逐行键入命令
使用 source()
我得到了不正确的结果(使用 Rscript -e
或在 R 会话中)。
系统信息可能有帮助:
sessionInfo()
R version 3.2.1 (2015-06-18)
Platform: x86_64-unknown-linux-gnu (64-bit)
Running under: Arch Linux
locale:
[1] LC_CTYPE=ru_RU.UTF-8 LC_NUMERIC=C LC_TIME=ru_RU.UTF-8 LC_COLLATE=C
[5] LC_MONETARY=ru_RU.UTF-8 LC_MESSAGES=ru_RU.UTF-8 LC_PAPER=ru_RU.UTF-8 LC_NAME=C
[9] LC_ADDRESS=C LC_TELEPHONE=C LC_MEASUREMENT=ru_RU.UTF-8 LC_IDENTIFICATION=C
attached base packages:
[1] stats graphics grDevices utils datasets methods base
loaded via a namespace (and not attached):
[1] tools_3.2.1
与文件编码有关。将以下选项添加到 source
:encoding="UTF-8", verbose=T
如果您不使用编码选项(保留 verbose=T 选项),您将在输出的顶部看到默认编码是 encoding = "native.enc"
,这不是您想要的希腊字符编码。
我有以下脚本:
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
:Rscript test.R
- 在 R 会话中逐行键入命令
使用 source()
我得到了不正确的结果(使用 Rscript -e
或在 R 会话中)。
系统信息可能有帮助:
sessionInfo()
R version 3.2.1 (2015-06-18)
Platform: x86_64-unknown-linux-gnu (64-bit)
Running under: Arch Linux
locale:
[1] LC_CTYPE=ru_RU.UTF-8 LC_NUMERIC=C LC_TIME=ru_RU.UTF-8 LC_COLLATE=C
[5] LC_MONETARY=ru_RU.UTF-8 LC_MESSAGES=ru_RU.UTF-8 LC_PAPER=ru_RU.UTF-8 LC_NAME=C
[9] LC_ADDRESS=C LC_TELEPHONE=C LC_MEASUREMENT=ru_RU.UTF-8 LC_IDENTIFICATION=C
attached base packages:
[1] stats graphics grDevices utils datasets methods base
loaded via a namespace (and not attached):
[1] tools_3.2.1
与文件编码有关。将以下选项添加到 source
:encoding="UTF-8", verbose=T
如果您不使用编码选项(保留 verbose=T 选项),您将在输出的顶部看到默认编码是 encoding = "native.enc"
,这不是您想要的希腊字符编码。