R.中的错误gsub中的错误(“(?< = \ n)(?=。| \ n)”,继续,x,perl = TRUE):

时间:2014-10-28 02:48:33

标签: r

我在R中遇到一个我似乎无法弄清楚的错误。我正在创建一个R markdown文档,我在这里使用此代码读取了一个csv表。

iati <- read.csv(file="/filepath/IATI_NGOS.csv",head=TRUE,sep=",")    

然后使用ggplot2我使用以下代码创建一个图。

figure_one <- ggplot(iati, aes(iati$reporting.org))+
              geom_bar(fill="blue")+
              ylab("Total Activities")+
              xlab("NGO Reporting Organizations in IATI")+
              ggtitle("Total Number of Activities compared to each NGO Reporting Organization in IATI")+
              coord_flip()

当我尝试在R markdown中调用figure_one时,我收到以下错误:

Quitting from lines 44-55 (NGO_IATI.Rmd) 
Error in gsub("(?<=\n)(?=.|\n)", continue, x, perl = TRUE) : 
input string 1 is invalid UTF-8
Calls: <Anonymous> ... paste -> comment_out -> line_prompt -> paste -> gsub
In addition: Warning message:
In grep("\n", message) : input string 1 is invalid in this locale
Execution halted

当我在常规R脚本中运行此代码时,我绝对没有问题。我已经找到了一些答案,但无法弄明白。

谢谢!

2 个答案:

答案 0 :(得分:1)

我刚刚在本地机器上全新安装了R和Rstudio来解决我的问题。我认为最近在我的本地环境中对Yosemite的更新给我为R markdown安装的TeX插件带来了很多问题。

答案 1 :(得分:0)

当我编织我的rmarkdown文档并发现** encoding是原因时,我遇到了同样的问题。 使用4.9.4read.csvfread之类的函数时,您将读取列名。

  1. 如果列名使用其他语言(例如中文),则问题很容易发生。
  2. 或者您在Windows上运行rmarkdown,但在另一种环境Mac上发生编码错误。

临时解决方案是用英语重命名列名并重新保存数据文件。

这是R中的伪代码,以表明我的想法。

read_csv

在这里,新文件library(data.table) library(tidyverse) fread('yourfile.csv',encoding = 'UTF-8') %>% purrr::set_names(c('x1','x2','x3')) %>% write_excel_csv('yourfile_2.csv') 非常适合rmarkdown编织,而不会发生编码问题。