R語言 | 表格?壓縮?你...過來啊!

2021-02-28 生信控

友情提示:藍色下劃線字體為引文,請保持警惕!

1、既然 fread 函數在前文中已經被證實讀取.csv文件具有較高的效率,為什麼對於.xlsx或.xls文件,推薦使用readxl包中的 read_excel 函數呢?

答:在使用 fread 函數讀取前文提到的 經試驗驗證的人類miRNA靶基因信息.xlsx文件:

http://mirtarbase.mbc.nctu.edu.tw/cache/download/7.0/hsa_MTI.xlsx

時報錯:

Error in fread(datafile, sep = "\t") :Internal error: invalid head position. jump=1, headPos=0x112d06005, thisJumpStart=0x112e0b194, sof=0x112d06000

因為 fread 函數對.xlsx格式文件不支持,所以一般是要先轉換成.csv後讀取:

https://stackoverflow.com/questions/48313025/how-to-load-xlsx-file-using-fread-function

http://www.sthda.com/english/wiki/reading-data-from-excel-files-xls-xlsx-into-r

2、如何讀取壓縮的表格文件?

事情就很奇怪,拿到壓縮文件後的第一反應是解壓縮,然後是嘗試用excel打開查看,當發現文件過大,無法在excel裡查看及操作時,才想起使用R,隨之考慮用更高效的大文件讀取方法。慣性思維導致...反倒是忽略了直接用R讀取壓縮文件...

fread 函數對於壓縮文件,僅支持兩種格式:

Compressed files ending 『.gz』 and 『.bz2』 are supported if the 『R.utils』 package is installed.

即可以直接讀取.gz和.bz2的壓縮文件,不需要事先解壓。而想要讀取本例中的.zip格式,仍然面臨腳本可移植性問題:

https://stackoverflow.com/questions/33341010/fread-of-file-from-archive

好在,讀取.csv速度稍遜色一點的 read_csv 函數支持更多的壓縮格式:

Files ending in 『.gz』, 『.bz2』, 『.xz』, or 『.zip』 will be automatically uncompressed. Files starting with 『http://』, 『https://』, 『ftp://』, or 『ftps://』 will be automatically downloaded. Remote gz files can also be automatically downloaded and decompressed.

但,遇到壓縮文件中有多個子文件時,卻沒有參數可以設置具體讀取哪個解壓文件!

而最適於讀取.xlsx或.xls文件的 read_excel 函數不支持直接讀取壓縮文件!

綜上,R語言 | 讀取壓縮文件 中介紹的方法仍然具有其強大的包容性,即支持更多的壓縮格式及文件格式。值得注意的是,針對不同的壓縮格式,需要不同的函數,通過 help(gzfile) 可具體查看。

對於本例:

HuEx-1_0-st-v2.na36.hg19.probeset.csv.zip,我們最終可用以下命令完成壓縮文件的快速讀取:

zipfile = "HuEx-1_0-st-v2.na32.hg19.probeset.csv.zip"

zipf = unz(zipfile, "HuEx-1_0-st-v2.na32.hg19.probeset.csv") # 特定文件

data = as.data.frame(read_csv(zipf, comment = "#", col_names = T)) # 或fread

3、測試。

基於本文,或許你知道該如何回答如下幾個填空題~

A、基礎/不用加載額外R包的.csv文件讀取函數是 ___

B、讀取較大的.csv文件推薦使用函數 ___

C、讀取.xlsx或.xls文件推薦使用函數 ___

D、對於讀取只有一個data.csv文件壓縮得到的data.csv.gz,可以直接使用函數 ___

E、具有普遍適用性的讀取壓縮文件的方法,可參考推文 ___

後臺回復 R表格讀取 直接獲取答案!

相關焦點

  • 使用R製作漂亮的表格(全網最全的方法)
    全網最全的R製作漂亮的表格方法本文原文來自:https://rfortherestofus.com/2019/11/how-to-make-beautiful-tables-in-r
  • 對照著Excel入門R語言表格數據處理
    這裡主要推薦使用dplyr包對數據進行分類匯總,主要用到以下幾個函數:filter():按記錄數值篩選,針對表格的「
  • 編程模板-R語言腳本寫作:最簡單的統計與繪圖,包安裝、命令行參數解析、文件讀取、表格和矢量圖輸出
    個人認為:是否能熟悉使用Shell(項目流程搭建)+R(數據統計與可視化)+Perl/Python等(膠水語言,數據格式轉換,軟體間銜接)三門語言是一位合格生物信息工程師的標準。之前分享過我個人的《Shell語言》和《Perl語言》腳本寫作模板(藍色字為連結直達),今天再分享一下我的R語言模板,一次性解決困擾新手的眾多問題,如包安裝、命令行參數解析、文件讀取、
  • R語言對接高級語言Fortran
    (1)Fortran是當之無愧的性能之王,在本文的測試中可以看到Fortran代碼的效率是Rcpp的2倍、Julia的4倍、python的30倍、R語言的90倍。在for循環密集的代碼中,Fortran可以輕鬆達到R語言的200倍;(2)很多古老的、但專業上通用的模型採用Fortran語言編寫,翻譯成其他語言,人力所不能及。為何對接到R語言?
  • R語言-stringr-字符串處理
    對大部分常規商業數據分析工作者的面對的表格數據而言,字符處理可能僅僅只是合併、剔除、刪除空格、倒敘等基礎操作。單雙引號R語言中字符串輸入時,可以使用單引號,也可以使用雙引號。,不用轉義路徑複製和直接可用charchar <- r"(我是一名'R語言'學習者)"cat(char)常用函數截取字符串,匹配字符串,添加指定字符籌齊長度,去除左右兩邊空格,分割字符串,
  • RStudio|用R Markdown生成你的R語言數據分析報告
    個人公眾號:數據科學家養成記 (微信ID:louwill12)R Markadown 作為一款通過R語言創建動態文檔的寫作排版工具,為數據科學提供了現成的寫作框架。通過 R Markdown 不僅可以運行和保存R代碼,還可以生成高質量的數據分析報告並以HTML、PDF或者word的形式分享。
  • 語法,你不要過來啊!(2)
    語法,你不要過來啊!(2)害怕~害怕!
  • Excel表格解密方法!Excel表格有表格修改權限的加密,教你解密!
    背景介紹:實際工作中很多情況下需要把表格進行設置加密權限,讓別人僅僅可以看,輸入指定單元格內容,但是不能修改保存,其實這個是用到了表格權限,如果你是設置權限的人,需要對表格進行調整更改,這個時候你突然發現,保護密碼忘記了;那麼今天就教你如何清除這個密碼
  • Python大法對比R語言
    老是被人拿起來對比,所以今天專門做了一個表格,簡介一下R語言與Python語言的對比情況。R語言有很多的特點……當然,看這張圖,是不是覺得很眼熟啊,沒錯,如果看過以前那篇「Python大法好」的文章的同學,發現,R語言怎麼和Python的特性這麼相似捏?
  • R 語言10分鐘入門
    R 是一門統計語言。它有很多數據分析和挖掘程序包。可以用來統計、分析和製圖。 你也可以在 LaTeX 文檔中運行 R 命令。
  • R語言從入門到精通:Day6-R語言數據操作進階及控制結構
    最近經過前面幾次推文的學習,我們的R語言教程已經講解了快1/3的內容,相信大家對R語言已經有了初步的了解,特別是感受了R語言在數據處理領域的強大功能
  • R語言-初識與數據結構
    S語言:1976年貝爾實驗室發展起來的數據交互分析系統;是一種高級程序語言,很好地統計應用快速開發系統。關於S語言更多信息見:http://cm.bell-labs.com/cm/ms/departments/sia/S/history.htmlScheme語言:Scheme 語言是計算機表面處理語言,該語言用於處理包含有表格的數據的程式語言,被廣泛地運用於人工智慧研究。
  • Huffman 編碼壓縮算法
    相信大家應該聽說過 David Huffman 和他的壓縮算法—— Huffman Code,一種通過字符出現頻率,Priority Queue,和二叉樹來進行的一種壓縮算法,這種二叉樹又叫Huffman二叉樹 —— 一種帶權重的樹。
  • 如何高效運行R語言
    R語言的很多基礎函數也是用C語言寫的,你可以認為R函數是對C語言函數的包裝,方便用戶的調用。但是自3.4版本之後,R語言可以自動實現對自定義函數的預編譯。高效讀寫(I/O)R有很多文件讀寫函數。對於文本文件的讀寫,特別是表格文件,我們常用read.csv,readr::read_csv或者data.table::fread。
  • 一鍵製作R語言Table 1,就是這麼簡單!
    流行病學或者醫學論文中,對研究對象基本情況的描述通常以表格的形式進行,並且放在結果部分的開頭,即Table 1,主要內容是研究對象一般情況和研究變量或協變量的分組展示。前幾天文章修回過程中,花了兩天時間分析數據,修改文章,其中有近1天的時間都在手動錄入數據(從R studio裡把分析結果整理到Excel或者word),這樣除了花費時間外,還非常容易出錯。
  • r語言有什麼優劣勢及R語言的未來發展趨勢_R語言在現實中的應用
    r語言有什麼優劣勢分析 R語言擁有強大的軟體包生態系統與圖表優勢 R語言的優勢主要體現在其軟體包生態系統上。是專門為統計和數據分析開發的語言,各種功能和函數琳琅滿目,其中成熟穩定的一抓一把 3. 語言簡單易學。雖與C語言之類的程序設計語言已差別很大(比如語言結構相對鬆散,使用變量前不需明確正式定義變量類型等等),但仍保留了程序設計語言的基礎邏輯與自然的語言風格。我這樣說可能讓人聽得雲裡霧裡,但是如果你對SAS或者SPSS有一點點了解,就會明白我的意思了。。。 4. 小。。。
  • 手把手教學,R語言基礎繪圖
    R語言是用於統計分析、繪圖的語言和操作環境。R的統計分析能力突出,有強大的數據展示能力。
  • 獨家 | 手把手教你學習R語言(附資源連結)
    另一種學習方法是在線版本swirl(https://www.datacamp.com/swirl-r-tutorial),它能讓您在類似RStudio環境中學習R語言。除了上述在線資源,您還可以考慮以下優秀資源:CRAN免費教學R語言(https://cran.r-project.org/doc/manuals/R-intro.pdf)。
  • R語言 | 更快的表格文件讀取方法!
    使用R語言讀取 Affymetrix Human Exon 1.0 ST Array 晶片平臺探針注釋文件:https://www.affymetrix.com/analysis/downloads/na36/wtexon/HuEx-1_0-st-v2.na36.hg19.probeset.csv.zip解壓後的.csv
  • Golang語言情懷-第46期 Go 語言標準庫翻譯 compress/bzip2
    data from r.If r does not also implement io.ByteReader, the decompressor may read more data than necessary from r.