R語(yǔ)言 UTF-8各種問(wèn)題的解決方案
R語(yǔ)言在碰到讀UTF-8文件,或者處理UTF-8數(shù)據(jù)時(shí)總是會(huì)遇到各種各樣的問(wèn)題,本姑娘也是在碰了n多次壁,被氣得吐血好多次之后,終于對(duì)這類總結(jié)出了一些解決辦法:
1. 讀UTF-8文件,例如UTF-8格式的csv:
最好的處理辦法就是:
a1=read.table('C:\\test11.csv',sep=',',fileEncoding = 'UTF-8',header = F)
如果使用如下方法可能會(huì)出錯(cuò)(全是血淚教訓(xùn)?。?/p>
a2=read.csv('C:\\test11.csv',fileEncoding = 'UTF-8',header = F) a2=read.csv('C:\\test11.csv',encoding = 'UTF-8',header = F)
2. 如何在R里把一個(gè)數(shù)據(jù)轉(zhuǎn)化為UTF-8格式:
因?yàn)槲以赗里寫(xiě)了一段程序,需要把數(shù)據(jù)轉(zhuǎn)化為JSON格式,通過(guò)上面的方法讀進(jìn)來(lái)的數(shù)據(jù)是沒(méi)有問(wèn)題,但是數(shù)據(jù)再R里并不是utf-8格式存儲(chǔ)的,所以toJSON()時(shí)報(bào)了如下錯(cuò)誤:
unable to escape string. String is not utf8
后來(lái)發(fā)現(xiàn)R里有一個(gè)函數(shù)可以把數(shù)據(jù)轉(zhuǎn)為utf8格式:enc2utf8()
> a='小源' > Encoding(a)#查看a的編碼格式 [1] "unknown" > b=enc2utf8(a) > Encoding(b) [1] "UTF-8"
3. 如何SOURCE一個(gè)UTF-8格式的R文件:
source一個(gè)utf8編碼保存的R腳本,在windows下(linux由于默認(rèn)編碼就是utf8,直接source就可以)
source('test.R',encoding = 'UTF-8')
補(bǔ)充:mac系統(tǒng)csv亂碼_R語(yǔ)言寫(xiě)入U(xiǎn)TF-8格式CSV亂碼解決辦法
中文編碼方式有GBK(GB2312)和UTF-8兩種。
由于區(qū)域設(shè)置問(wèn)題,在Windows系統(tǒng)下,Excel程序默認(rèn)用GBK格式讀取CSV文件。
因此會(huì)導(dǎo)致亂碼。
如下圖所示:
解決的辦法是用tidyverse包中的write_excel_csv()函數(shù)。
下面上代碼:
library(tidyverse) x <- c('好好地', '針對(duì)是棒極啦', '哈好好好好好愛(ài)吼吼吼啊', '啊') y <- c(1, 2, 3, 4) z <- c('haha', 'hehe', 'hoho', 'lala') xyz_tbl <- tibble(x,y,z) read_csv(file = 'data1.csv', ) #亂碼 write.csv(xyz_tbl,'data_old.csv',row.names = T,fileEncoding='UTF-8') #再次亂碼 write_csv(xyz_tbl, 'data.csv') #解決問(wèn)題 write_excel_csv(xyz_tbl, 'data_ex.csv') #以上文件用R讀取都沒(méi)問(wèn)題 read_csv(file = 'data.csv') read_csv(file = 'data_ex.csv') read_csv(file = 'data_old.csv')
原數(shù)據(jù)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。
相關(guān)文章
R語(yǔ)言數(shù)據(jù)類型與相應(yīng)運(yùn)算的實(shí)現(xiàn)
本文主要介紹了R語(yǔ)言數(shù)據(jù)類型與相應(yīng)運(yùn)算的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03詳解R語(yǔ)言caret包trainControl函數(shù)
這篇文章主要介紹了R語(yǔ)言caret包trainControl函數(shù)詳解,本文通過(guò)源碼分析給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-08-08R語(yǔ)言關(guān)于數(shù)據(jù)幀的知識(shí)點(diǎn)詳解
在本篇文章里小編給大家整理的是一篇關(guān)于R語(yǔ)言關(guān)于數(shù)據(jù)幀的知識(shí)點(diǎn)詳解內(nèi)容,有興趣的朋友們可以學(xué)習(xí)下。2021-04-04R語(yǔ)言ggplot2圖例標(biāo)簽、標(biāo)題、順序修改和刪除操作實(shí)例
R語(yǔ)言中畫(huà)圖時(shí)我們常常要設(shè)定標(biāo)題,如果圖片標(biāo)題是固定則很容易操作,下面這篇文章主要給大家介紹了關(guān)于R語(yǔ)言ggplot2圖例標(biāo)簽、標(biāo)題、順序修改和刪除操作的相關(guān)資料,需要的朋友可以參考下2022-07-07R語(yǔ)言中ifelse、which、%in%的用法詳解
這篇文章主要介紹了R語(yǔ)言中ifelse、which、%in%的用法詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-04-04vscode配置R語(yǔ)言debugger環(huán)境:'vscDebugger"的安裝方法
在R中安裝vscDebugger包可以通過(guò)兩種方法:第一種是使用Visual Studio Code的命令面板自動(dòng)安裝,操作簡(jiǎn)便,第二種是手動(dòng)在R控制臺(tái)中安裝,這兩種方法都可以有效地安裝vscDebugger包,進(jìn)而幫助用戶在R語(yǔ)言中進(jìn)行代碼調(diào)試,更多詳細(xì)步驟和信息可以參考相關(guān)教程或文章2024-10-10R語(yǔ)言作圖之直方圖histogram繪制過(guò)程詳解
這篇文章主要介紹了R語(yǔ)言作圖之直方圖histogram詳解,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-03-03