簡體   English   中英

R函數輸出將非英語(unicode)字符更改為廢話

[英]R function output changes non-english (unicode) characters to nonsense

我正在用R編寫一個函數,該函數根據輸入返回不同的字符串,但是從該函數返回的瑞典語(åäö)似乎亂七八糟。

return_string<-function(x){

z<-switch(x,
        1 = c("<br><strong>åäö:</strong>"),
        2 = c("<br><strong>öäå:</strong>")
return(z)
}

但是當我嘗試打印時,我得到...

var<-1
z<-return_string(var) 
print(z)       
[1] "<br><strong>åäö:</strong>"

這很奇怪,因為我將UTF-8作為默認文本編碼,並且可以很好地使用åäö,否則,似乎只有在它們從列表或c()格式的函數返回時才會發生。 如果我檢查Sys.getlocale我得到...

> Sys.getlocale()
[1] "LC_COLLATE=Swedish_Sweden.1252;LC_CTYPE=Swedish_Sweden.1252; 
LC_MONETARY=Swedish_Sweden.1252;LC_NUMERIC=C;LC_TIME=Swedish_Sweden.1252"

我的會話信息是...

    > sessionInfo()
    R version 3.2.2 (2015-08-14)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 7 x64 (build 7601) Service Pack 1

locale:
[1] LC_COLLATE=Swedish_Sweden.1252  LC_CTYPE=Swedish_Sweden.1252   
[3] LC_MONETARY=Swedish_Sweden.1252 LC_NUMERIC=C                   
[5] LC_TIME=Swedish_Sweden.1252    

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

other attached packages:
[1] tau_0.0-18         RColorBrewer_1.1-2 htmltools_0.2.6    magrittr_1.5      
[5] leaflet_1.0.0      shiny_0.12.2       sp_1.2-1          

loaded via a namespace (and not attached):
 [1] Rcpp_0.12.2      lattice_0.20-33  digest_0.6.8     mime_0.4        
 [5] plyr_1.8.3       grid_3.2.2       R6_2.1.1         xtable_1.8-0    
 [9] jsonlite_0.9.17  scales_0.3.0     tools_3.2.2      htmlwidgets_0.5 
[13] munsell_0.4.2    httpuv_1.3.3     yaml_2.1.13      colorspace_1.2-6

嘗試運行您的代碼時出現錯誤。 當類型參數應為character如您的語法預期), switch選項的語法是不同的:

ret_str_chr <- function( type) {
   switch(type,
          '1' = c("<br><strong>åäö:</strong>"),
          '2' = c("<br><strong>öäå:</strong>") )
 }
 ret_str_chr(var)
#[1] "<br><strong>åäö:</strong>"

當type / choice參數為數字時,僅按要建立索引的順序放置要返回的項目:

ret_str_n <- function( choice) {
   switch(choice,
          c("<br><strong>åäö:</strong>"),
          c("<br><strong>öäå:</strong>") )
 }

 var=1
 ret_str_n(var)
#[1] "<br><strong>åäö:</strong>"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM