【问题标题】:R function not working when imported导入时R功能不起作用
【发布时间】:2017-09-04 09:50:52
【问题描述】:

我正在编写一些关于我想在 jupyter notebook 或 Rstudio 上使用的 sublime 文本的函数。 该函数在 Sublime 上运行良好,但在 jupyter 或 Rstudio 中的输出效果不佳。

功能:

normalize <- function(str, tobereplaced = c('à','â','ä'), replacements = c('a','a','a') ){
        for (i in 1:length(tobereplaced)){
            str <- gsub( tobereplaced[i], replacements[i], str)
        }
        return(str)
    }

执行时:

normalize("àâä")

输出崇高:

Warning message:
Warning messages:
[1] "aaa"
[Finished in 0.6s]

输出 jupyter & Rstudio :

'àâä'

有人可以帮忙吗? (我用source()导入了包含函数的R文件)

编辑 : 只有在导入包含该函数的 R 文件时才会出现该问题。当我在本地定义函数时,它确实可以正常工作。

【问题讨论】:

  • 我无法在 RStudio 中复制您的问题。为我工作。
  • 谢谢Z.Lin 仅导入函数时出现问题。
  • 我将脚本保存为 3 种不同编码(ANSI、unicode、UTF-8)的 R 文件,并将每个版本都导入 RStudio。他们都工作了。
  • 感谢帮助,我的还是不行,我再试试
  • 您可能希望在此处查看解决方案。用例似乎相似。 stackoverflow.com/a/36898175/8449629

标签: r import


【解决方案1】:
> normalize <- function(str, tobereplaced = c('à','â','ä'), replacements = c('a','a','a') ){
+   for (i in 1:length(tobereplaced)){
+     str <- gsub( tobereplaced[i], replacements[i], str)
+   }
+   return(str)
+ }
> normalize("àâä")
[1] "aaa"
> 

我在 Rstudio 版本 1.0.153 中运行了您的代码,它运行良好...

【讨论】:

  • 只有当我将函数导入 Rstudio 或 Jupyter 时才会出现问题,如果在本地定义它对我来说也可以正常工作
【解决方案2】:

已解决:问题是由于 jupyter notebook 的编码造成的。

解决此问题的一种方法是执行以下操作:

source("file.R", encoding = "UTF-8" )

感谢大家的帮助

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-04-07
    • 2018-07-30
    • 2022-01-19
    • 2015-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-30
    相关资源
    最近更新 更多