日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

R中读取包含中文字符的文件时这个诡异的错误你见过吗?

發(fā)布時(shí)間:2025/3/15 编程问答 66 豆豆
生活随笔 收集整理的這篇文章主要介紹了 R中读取包含中文字符的文件时这个诡异的错误你见过吗? 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

我們有一個(gè)文件,里面寫了一些中文信息,命名為chinese.txt,內(nèi)容為

Train Time 轉(zhuǎn)錄組開課時(shí)間 2021/10/29-2021/10/31 臨床基因組學(xué)開課時(shí)間 2021/11/12-2021/11/14 宏基因組開課時(shí)間 2021/11/19-2021/11/21 擴(kuò)增子開課時(shí)間 2022/01/07-2022/01/09

嘗試讀入R,報(bào)錯(cuò) line 2 did not have 2 elements 很詭異的提示!!!

如果我們一直去數(shù)列數(shù),這是怎么都不會(huì)發(fā)現(xiàn)問題的。考慮到大多數(shù)程序語言對非英文支持不好,考慮是編碼格式問題。

train <- read.table('chinese.txt')

Error in scan(file = file, what = what, sep = sep, quote = quote, dec = dec, : line 2 did not have 2 elements

解決方案1:指定編碼格式

正確的讀了進(jìn)來

train <- read.table('chinese.txt', fileEncoding = "utf-8", header=T) train## Train Time ## 1 轉(zhuǎn)錄組開課時(shí)間 2021/10/29-2021/10/31 ## 2 臨床基因組學(xué)開課時(shí)間 2021/11/12-2021/11/14 ## 3 宏基因組開課時(shí)間 2021/11/19-2021/11/21 ## 4 擴(kuò)增子開課時(shí)間 2022/01/07-2022/01/09

解決方案2:用readr包里面的read_tsv

這個(gè)使用更方便,適用范圍也更廣。有時(shí)在read.table中即使指定了fileEncoding = "utf-8"參數(shù)后依然解決不了問題的文件,用readr毫無壓力。

library(readr) readr::read_tsv('chinese.txt')## ## -- Column specification -------------------------------------------------------------------------- ## cols( ## Train = col_character(), ## Time = col_character() ## )## # A tibble: 4 x 2 ## Train Time ## <chr> <chr> ## 1 轉(zhuǎn)錄組開課時(shí)間 2021/10/29-2021/10/31 ## 2 臨床基因組學(xué)開課時(shí)間 2021/11/12-2021/11/14 ## 3 宏基因組開課時(shí)間 2021/11/19-2021/11/21 ## 4 擴(kuò)增子開課時(shí)間 2022/01/07-2022/01/09

解決方案3:用data.table包里面的fread

需要手動(dòng)指定編碼格式

library(data.table) # UTF-8 大小寫敏感 fread('chinese.txt', encoding = "UTF-8")## Train Time ## 1: 轉(zhuǎn)錄組開課時(shí)間 2021/10/29-2021/10/31 ## 2: 臨床基因組學(xué)開課時(shí)間 2021/11/12-2021/11/14 ## 3: 宏基因組開課時(shí)間 2021/11/19-2021/11/21 ## 4: 擴(kuò)增子開課時(shí)間 2022/01/07-2022/01/09

往期精品(點(diǎn)擊圖片直達(dá)文字對應(yīng)教程)

機(jī)器學(xué)習(xí)

后臺(tái)回復(fù)“生信寶典福利第一波”或點(diǎn)擊閱讀原文獲取教程合集

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)

總結(jié)

以上是生活随笔為你收集整理的R中读取包含中文字符的文件时这个诡异的错误你见过吗?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。