R語言獲取中文檔案

2021-09-18 02:14:12 字數 1632 閱讀 7924

使用r讀取檔案
r常用的讀取檔案的方式是read.csv、read.table、read.xlsx,分別對應csv、txt、xlxs格式的檔案,一般情況下使用txt、csv格式的檔案比較多,xlxs我是未成功被r讀取到過,若將xlsx變為csv格式的時候,需要將xlsx另存為csv格式,不是該個字尾那麼簡單。在讀取檔案的時候遇到的問題及解決辦法。

**背景:**讀取的檔案含有多列中文

**系統:**windows10

出現的問題:

warning messages:

1: in read.table(「huaxiang.txt」, sep = " 「, fileencoding = 「utf-8」, :

invalid input found on input connection 『huaxiang.txt』

2: in read.table(「huaxiang.txt」, sep = " 「, fileencoding = 「utf-8」, :

incomplete final line found by readtableheader on 『huaxiang.txt』

中間試的過程省略,原因是檔案編碼不對。

因此將txt檔案的編碼形式先轉為utf-8,在用 read.table(「huaxiang.txt」, sep = " 「, fileencoding = 「utf-8」),發現可以正常匯入資料。但summary這個資料的時候,資料是怪異的,原因是分隔符即sep=」 「用的不對,因此將語句改為 read.table(「huaxiang.txt」, sep = 「\t」, fileencoding = 「utf-8」)即可正常匯入和顯示。

補充知識點:

1.讀入資料前的檔案編碼

不管是csv還是txt(經測試過),儲存時編碼選擇utf-8。

2.檔案路徑不能含有中文

3. read.table裡面有個引數是sep,它的意思是分開資料值,關於分空白分隔符,製表符,換行符,根據檔案內容使用分割符可以將檔案分成垂直列,相應的形式如下:

常見空白分隔符有:空格,製表符,換行符

sep=」 」;sep = 「\t」;sep = 「\n」

如資料是a,c,v,b,那麼分隔符是逗號「,」

如資料是從excel符合得來,分割符號是製表符」\t」

具體可參考這篇部落格:

4.讀取檔案引數中fileencoding與encoding的區別,讀取檔案是適用fileencoding可以正常讀入,當改為encoding的時候,則出現下面問題。

error in make.names(col.names, unique = true) :

invalid multibyte string 4

**是:

read.table(「huaxiang.txt」,sep=」\t",header = t,encoding = 「utf-8」,stringsasfactors=f)

改變編碼使用fileencoding,不要用encoding,這個已經在多個部落格中強調過,本部落格再次強調一次。

5.讀入資料不正確

使用stringsasfactors=false進行設定即可防止型別發生轉化導致資料不正常,講解同樣可以參考下面部落格:

C 讀寫中文檔案

using system.text 輕鬆解決c 讀寫檔案遇到的中文亂碼問題 c 寫入 讀出文字檔案 string filename c 111.txt streamreader sr new streamreader filename 改為streamreader sr new streamread...

R語言中檔案的讀寫

1.json檔案 library jsonlite file users abcd documents diff files json test.json json1 read json path file write json json1,path file 2.yaml檔案 library ya...

php copy中文檔名檔案

現象 php 複製中文名的檔案時,總是報錯!背景 php檔案本身為utf 8編碼,window作業系統預設的中文編碼為gb2312 解決方案 basename 的替代函式,解決basename無法處理中文的問題 function get basename filename file 測試.jpg c...