R語言答疑:txt文件無法被R正確讀入

2021-02-14 基迪奧生物

今天來解答一個網友的疑惑,或許你也曾遇到過這個問題噢~

R語言中,txt無法正確的讀入的可能性有很多種。有位網友提供的一個無法正確讀入的文本文件,使用記事本打開,看起來一切正確(見圖片)。

但讀入的時候,報錯如下。

>read.table("1.txt")

Error intype.convert(data[], as.is = as.is, dec = dec, numerals = numerals,  :

  '<ff><fe><67>'多字節字符串有錯

此外,Warning messages:

Inread.table("1.txt") : line 1 appears to contain embedded nulls

Inread.table("1.txt") : line 2 appears to contain embedded nulls

Inread.table("1.txt") : line 3 appears to contain embedded nulls

Inread.table("1.txt") : line 4 appears to contain embedded nulls

Inread.table("1.txt") : line 5 appears to contain embedded nulls

Inscan(file = file, what = what, sep = sep, quote = quote, dec = dec,:embedded nul(s) found in input

報錯提示,文本中包含嵌入的null符號,所以無法正確讀取。那麼為什麼使用記事本打開卻一切正常呢?我們試試使用專業的文本編輯器VIM(如果有問題,可以百度VIM)打開(見圖片,原文件-VIM)。

注意了,與記事本看起來多了很多符號。因為在記事本下,文本中的很多異常符號是顯示不出來的。

以上兩個符號需要被刪除的,否者R可能出現讀取錯誤。

1)

將1.txt使用記事本打開,然後複製到excel裡。接著將excel裡的文本在複製一遍,粘貼到一個新建的txt文件 2.txt裡面。再次使用VIM打開,看起來就一切正常了(見圖片 修改後-VIM)。

然後,R就可以正常讀入了。

2)

在VIM下,將異常符號替換去除。如果熟悉使用VIM的同學,可以使用以下兩個命令替換異常符號:

  %s/\r//g         #備註:替換掉^M  

  %s/^@//g            #備註:替換掉^@, ^@不能直接輸入,否者會報錯。正確的方法是Shift + Ctrl + 2 來輸入^@

另外在R最新版本 3.2.3 的read.table命令 多了一個選項:skipNUL。如果skipNul=TRUE可以自動忽略文件中的NULL符號。不過在這個例子中,由於異常符號^M的存在,即使使用skipNul=TRUE依然是會報錯的。需要將^M手動替換去除。

相關焦點

  • R語言數據實戰 | 數據讀入
    上次介紹了R中各式各樣的數據結構,下面就來介紹如何將數據讀入R中。下面分兩個部分,分別講解R中的數據可以從哪兩種渠道獲得,常用的txt,csv,xls文件裡,數據又該如何一鍵導入R中。數據的第一個來源就是:自己造。儘管這種方法不常用,但在一些場景下還是經常用到,可以作為輔助。創建數據最重要的就是明確自己需要生成的數據結構及數據類型。
  • 編程模板-R語言腳本寫作:最簡單的統計與繪圖,包安裝、命令行參數解析、文件讀取、表格和矢量圖輸出
    之前分享過我個人的《Shell語言》和《Perl語言》腳本寫作模板(藍色字為連結直達),今天再分享一下我的R語言模板,一次性解決困擾新手的眾多問題,如包安裝、命令行參數解析、文件讀取、此步還包括加載了optparse包後,對命令行的解析,以及在屏幕上顯示參數,讓用戶校驗是否正確。3. 讀取輸入文件R用於作圖,讀入最多的是制表符分割的表格。我提供了使用rnorm生成的測試數據,並輸入了測試文件,其實這種方式在程序測試、教程和實驗分析對照中也是很常用的。
  • PyCharm如何讀取.txt文件
    今天跟大家分享一下,如何在Pycharm中讀取.txt文件。每一個學Python的人都應該聽過這個名字,PyCharm真的很好用!初學者的話不建議漢化,畢竟很多技術文檔都是英文寫的,平時多接觸也有很多好處。初學者在學習數據分析的時候肯定要從外部導入Excel表格中的內容,這個時候需要在項目文件下建立.txt文件進行粘貼複製內容,但是有時候讀取不出來。
  • C語言——文件的基本操作
    C語言中文件的基本操作包括:文件的打開、文件的關閉以及文件的輸入和輸出。"rb", "wb", "ab", "rb+", "r+b", "wb+", "w+b", "ab+", "a+b"如果要以只讀方式打開文件名為test.txt的文本文件,應寫成如下形式:
  • R語言-用R眼看琅琊榜小說的正確姿勢
    然後樓主偶然間想到了R語言的文本挖掘項目,試著用readLines讀入了小說全文,一個新的世界打開了。綜上,本文以一個偽程式設計師+偽數據分析的角度,講一下用R語言讀琅琊榜的一些故事。這個也可以用於以後做一些讀書筆記和線索整理。
  • R語千尋 | 非結構化數據--文本數據的讀入
    於是你把文件放入工作空間,並觀察它的分隔符後,輸入這麼一條命令:read.table(「weibo.txt」,sep=「\t」) 一運行,發現R給我們先來一個開門紅:這可能是童鞋們在讀入數據時經常遇到的Error。這個錯誤的產生通常是由於read.table只能讀入完整的橫行豎列的數據,當某些行存在空欄位時,就無法構成完整的表格,因此R告訴你某些行並沒有該表格每行所需要的8個元素。
  • python入門教程06-02(python語法入門之文件處理)
    上一章講解了python的字符編碼,了解了python的字符代碼結構之後就需要了解一下python這門語言是如何處理你給的命令,怎麼去處理文件的,下面我們來了解一二。一 引入應用程式運行過程中產生的數據最先都是存放於內存中的,若想永久保存下來,必須要保存於硬碟中。
  • R用戶Python指南:文件和異常
    with open('input/pi_digits.txt') as file_object: contents = file_object.read()print(contents.rstrip()) #rstrip()刪除字符串末尾的空白## 3.1415926535## 8979323846## 2643383279
  • 文件操作的正確流程,C語言文件操作的函數
    引言操作文件的正確操作流程為:打開文件—>讀寫文件—>關閉文件在對文件進行讀寫操作之前,需要先打開文件,操作完成之後就要關閉文件!所謂的打開文件,就是需要獲取文件的信息,例如文件名、文件狀態以及文件位置;而對於文件的操作,就是對文件的讀(read)與寫(write),C語言對於文件的操作十分的靈活;同時在對文件完成操作之後,就需要關閉文件,不僅是為了禁止對文件的操作,同時也是為釋放儲存文件指針FILE的內存空間資源。
  • 技術貼 | R語言:組學關聯分析和pheatmap可視化
    舉例展示R語言組學關聯分析的方法。宏基因組數據以KO-樣品豐度表為例。代謝組數據以metabolite-樣品豐度表為例。基本方法是用R語言psych包corr.test函數進行兩組數據的相關分析,結果經格式化後用pheatmap可視化得熱圖。一、模擬輸入 1.
  • R語言數據導入之read.table
    為了滿足這些需求,本文列舉了幾個較為簡單的數據快速導入的方法,從最簡單的文本文檔到spss和sas的文檔。請繼續閱讀後面的內容。你的數據導入數據前,需要獲取數據,如何獲取數據不在本文的探討範圍內。要點: 當你要導入數據前需要確認如下幾點,這樣能保證你正確導入數據到R中。
  • C語言探索之旅 | 第二部分第七課:文件讀寫
    怎麼用 C語言寫一個退出時依然保存文本的文本編輯器呢?幸好,在 C語言中我們可以讀寫文件。這些文件會儲存在我們電腦的硬碟上,就不會在程序退出或電腦關閉時被清除了。為了實現文件讀寫,我們就要用到迄今為止我們所學過的知識:指針,結構體,字符串,等等。也算是複習吧。2.
  • R語言對接高級語言Fortran
    (1)Fortran是當之無愧的性能之王,在本文的測試中可以看到Fortran代碼的效率是Rcpp的2倍、Julia的4倍、python的30倍、R語言的90倍。在for循環密集的代碼中,Fortran可以輕鬆達到R語言的200倍;(2)很多古老的、但專業上通用的模型採用Fortran語言編寫,翻譯成其他語言,人力所不能及。為何對接到R語言?
  • R語言外部數據錄入與格式修改
    第一種方式:讀取外部數據1 最為常用的數據讀取方式是用read.table()函數或read.csv()函數讀取外部txt或csv格式的文件其中: txt文件,制表符間隔 csv文件,逗號間隔 2 一些R程序包(如foreign)也提供了直接讀取Excel, SAS, dbf, Matlab, spss, systat,Minitab文件的函數。
  • 講座資料速遞 | R語言爬蟲示例
    今天下午,陳堰平老師為我們帶來了包含技術含量的R語言爬蟲課。
  • 詳細教程:從R中導出各種數據文件格式
    今天來學習下怎麼從R中導出數據,這個是R語言基本功。1. 使用R基礎函數導出數據1.1 導出txt文件導出txt文件可以使用write.table函數。# 加載數據集data("mtcars")# 以txt格式導出數據write.table(mtcars,  # 要導出的數據            file = "mtcars.txt", # 指定導出數據的文件名稱和格式            sep = "\t", # 欄位分隔符
  • Python文件對象及open函數
    例如,我們通過程序建立的列表、字典等數據,當程序結束時,需要把這些數據存儲到文件中,當程序再次啟動時,可以把這些數據讀入到程序中,避免這些數據的重新錄入。要實現上面的功能,我們該怎麼做呢?要把列表、字典等數據永久存儲起來,就需要用到文件。
  • r語言的秩和檢驗 - CSDN
    本文使用的作圖數據的網盤連結(提取碼o8lr):https://pan.baidu.com/s/1b-1INL4HFrsIOvs_0UfByw文件「alpha.txt」為某16S細菌群落測序所獲得的部分alpha多樣性指數數據,包含3列信息:sample,樣本名稱;observed_species和shannon分別為兩種類型的alpha多樣性指數。
  • 【R函數學習】R語言時間序列函數整理
    ,freq=1,start=c(1949))Box.test(temp, type="Ljung-Box",lag=6)4、差分運算和滯後運算difflag5、模擬ARIMA模型的結果arima.sim(n = 100, list(ar = 0.8))plot.ts(arima.sim(n = 100, list(ar = 0.8
  • python(pandas)讀取外部數據---使用Pandas讀寫操作txt文件
    1、準備.txt的數據文件其實pandas讀寫.txt文件和讀寫csv文件是類似的,而且使用的都是pd.read_csv()  /