【发布时间】:2016-04-01 13:18:23
【问题描述】:
我在 Rstudio 控制台中显示俄语字符时遇到问题。我使用 readxl 包加载了一个带有俄语的 Excel 文件。西里尔字母在数据框中正确显示。但是,如果我运行一个输出包含变量名称的函数,RStudio 控制台会显示符号而不是正确的西里尔字符。
test.xlsx 包含两列 - зависимая переменная(因变量 - 数字)和 независимая переменная(自变量,因子)。
зависимая_переменная независимая_переменная
5 а
6 б
8 в
8 а
7.5 б
6 в
5 а
4 б
3 в
2 а
5 б
我的代码:
Sys.setlocale(locale = "Russian")
install.packages("readxl")
require(readxl)
basetable <- readxl::read_excel('test.xlsx',sheet = 1)
View(basetable)
basetable$независимая_переменная <- as.factor(basetable$независимая_переменная)
str(basetable)
这是我从 str 函数的输出中得到的:
Classes ‘tbl_df’, ‘tbl’ and 'data.frame': 11 obs. of 2 variables:
$ çàâèñèìàÿ_ïåðåìåííàÿ : num 5 6 8 8 7.5 6 5 4 3 2 ...
$ íåçàâèñèìàÿ_ïåðåìåííàÿ: Factor w/ 3 levels "а","б","в": 1 2 3 1 2 3 1 2 3 1 ...
我想让变量名称正确显示为俄语,因为我将根据这些数据构建许多模型。作为参考,这是我的 sessionInfo()
R version 3.2.3 (2015-12-10)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows >= 8 x64 (build 9200)
locale:
[1] LC_COLLATE=Russian_Russia.1251 LC_CTYPE=Russian_Russia.1251
[3] LC_MONETARY=Russian_Russia.1251 LC_NUMERIC=C
[5] LC_TIME=Russian_Russia.1251
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] readxl_0.1.1 shiny_0.13.1 dplyr_0.4.3
loaded via a namespace (and not attached):
[1] Rcpp_0.12.2 digest_0.6.9 assertthat_0.1 mime_0.4
[5] chron_2.3-47 R6_2.1.2 xtable_1.8-2 jsonlite_0.9.19
[9] DBI_0.3.1 magrittr_1.5 lazyeval_0.1.10 data.table_1.9.6
[13] tools_3.2.3 httpuv_1.3.3 parallel_3.2.3 htmltools_0.3
【问题讨论】:
-
我不确定
readxl是否支持编码参数。但我建议您尝试将文件保存为 *.csv 格式。然后是read.table()或fread()和encoding = "UTF-8"。此外,快速研究表明xlsx包应该具有带编码参数的 Excel 文件读取功能。 -
Batanichek - 谢谢,我实际上用正确的变量运行它,刚刚更正它。
-
@A.Val。我只是用 xlsx 包运行它并指定了编码。我仍然在胡言乱语的西里尔语中得到相同的输出。
basetable <- read.xlsx('test.xlsx',sheetIndex=1,encoding="UTF-8") -
@A.Val。问题是当我将 xlsx 文件保存为 CSV 格式时,无论西里尔字符在哪里,我都会得到问号。这就是我转向 readxl 包的原因,它至少在除控制台之外的任何地方查看变量时都能正确显示数据。
-
不幸的是,RStudio 目前在 Windows 上显示多字节字符时遇到了一些问题。 :-/ 这是 RStudio 中的一个错误,不幸的是我认为目前没有解决方案。