以下内容在直接复制粘贴到R中时效果良好:

> character_test <- function() print("R同时也被称为GNU S是一个强烈的功能性语言和环境,探索统计数据集,使许多从自定义数据图形显示...")
> character_test()
[1] "R同时也被称为GNU S是一个强烈的功能性语言和环境,探索统计数据集,使许多从自定义数据图形显示..."

但是,如果我制作一个名为character_test的文件.R包含完全相同的代码,save it in UTF-8 encoding(以便保留特殊的汉字),然后当我在R中使用source()时,我得到以下错误:

> source(file="C:\\Users\\Tony\\Desktop\\character_test.R", encoding = "UTF-8")
Error in source(file = "C:\\Users\\Tony\\Desktop\\character_test.R", encoding = "utf-8") : 
  C:\Users\Tony\Desktop\character_test.R:3:0: unexpected end of input
1: character.test <- function() print("R
2: 
  ^
In addition: Warning message:
In source(file = "C:\\Users\\Tony\\Desktop\\character_test.R", encoding = "UTF-8") :
  invalid input found on input connection 'C:\Users\Tony\Desktop\character_test.R'

如果您能帮助我解决问题,帮助我理解这里发生的事情,我将不胜感激.

> sessionInfo() # Windows 7 Pro x64
R version 2.12.1 (2010-12-16)
Platform: x86_64-pc-mingw32/x64 (64-bit)

locale:
[1] LC_COLLATE=English_United Kingdom.1252 
[2] LC_CTYPE=English_United Kingdom.1252   
[3] LC_MONETARY=English_United Kingdom.1252
[4] LC_NUMERIC=C                           
[5] LC_TIME=English_United Kingdom.1252    

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods  
[7] base     

loaded via a namespace (和 not attached):
[1] tools_2.12.1

> l10n_info()
$MBCS
[1] FALSE

$`UTF-8`
[1] FALSE

$`Latin-1`
[1] TRUE

$codepage
[1] 1252

推荐答案

我们在我上一篇帖子的 comments 中讨论了很多,但我不想在第3页的 comments 中忽略这一点:你必须设置语言环境,它可以与来自R控制台的输入(参见 comments 中的屏幕截图)以及来自文件的输入一起工作参见此屏幕截图:

文件"myfile.r"包含:

russian <- function() print ("Американские с...");

控制台包含:

source("myfile.r", encoding="utf-8")
> Error in source(".....
Sys.setlocale("LC_CTYPE","ru")
> [1] "Russian_Russia.1251"
russian()
[1] "Американские с..."

请注意,中的文件失败,它指向与原始海报错误相同的字符("R"后面的字符).我不能用中文这样做,因为我必须安装"Microsoft拼音IME 3.0",但过程是一样的,您只需将区域设置替换为"中文"(名称有点不一致,请参阅文档).

R相关问答推荐

如果R上的不同时期之间的值发生了变化,则创建假人

为什么t使用ifelse()基于两个DF中的匹配观察创建新列不适用于此数据?

如何在列表的子元素上使用setName

IQR()和stats之间四分位距计算的差异::分位数()在R和' ggpubr '

使用Shiny组合和显示复制和粘贴的数据

使用tidy—select创建一个新的带有mutate的摘要变量

我想在R中总结一个巨大的数据框架,使我只需要唯一的lat、lon、Date(Year)和Maxium Value""""""""

将数据集中的值增加到当前包含的最大值

移除仪表板Quarto中顶盖和车身之间的白色区域

R中的时间序列(Ts)函数计数不正确

以更少间隔的较小表中的聚合离散频率表

更新R中的数据表(使用data.table)

在R中,如何从一系列具有索引名的变量快速创建数据帧?

如何计算每12行的平均数?

使用gt_summary是否有一种方法来限制每个变量集进行配对比较?

Rmarkdown::Render vs Source()

网络抓取新闻标题和时间

我需要使用ggplot2制作堆叠条形图

如何移动点以使它们的打印不重叠

R-使用stri_trans_General()将其音译为德语字母