R語言-如何讀寫帶分隔符的文件
有眾多的格式和文本文件標準可用於存儲數據。用於存儲數據的通用格式為分隔符值(即CSV或制表符分割文件)、可擴展標記語言(XML)、JavaScript對象表示法(JSON)
將數據存儲在文本文件中的主要優點是:他們可被幾乎所有的其他數據分析軟件或人讀取
R語言提供豐富的函數來讀取不同格式的數據,包括:
文本文件(TXT文件)
逗號分隔文件(CSV文件)
TXT文件——read.table()
矩形(類似電子表格的)數據通常存儲在帶有分隔符的文件中,特別是逗號分隔值(CSV)和制表符分隔值文件。read.table將讀取這些分隔符文件,並將結果存儲在一個數據框中。其格式如下:
read.table(file,header = FALSE,sep = “”,quote = “”'", dec = “.”,numerals = c(“allow.loss”,“warn.loss”,“no.loss”), row.name,col.name,as.is = !stringsAsFactors, na.strings = “NA”,colClasses = NA,nrow = -1, skip = 0,check.names = TRUE,fill = !blank.lines.skip, strip.white = FALSE,bla nk.lines.skip = TRUE, comment.char = “#”, allowEscapes = FALSE,flush = FALSE, stringsAsFactors = default.stringsAsFactors(), fileEncoding = “”,encoding = “unknown”,text,skipNul = FALSE)
read.table 函數的常用參數描述
參數 | 描述 |
---|---|
file | 文件名(包含在“”內,或使用一個字符型變量),可能需要全路徑(即使是在Windows下,符號 \ 也不允許包含在內,必須用 / 或者 \ \ 替換)或者一個URL(Uniform Resource Location,統一資源定位符)鏈接(用URL對文件遠程訪問) |
header | 一個邏輯值,用來反映這個文件的第1行是否包含變量名,為TRUE時表示文件的第1行為變量名 |
sep | 文件中的字段分隔符,例如,對用制表符分隔的文件使用sep=“\t” |
quote | 指定用於包圍字符型數據的字符 |
dec | 用來標識小數點的字符 |
fill | 如果為TRUE且所有行中的變量數目並不相同,則用空白填補 |
row.names | 保存著行名的向量,或文件中一個變量的序號或名字,默認時行號取為1、2、3··· |
col.names | 指定列名的字符型向量,默認值為V1、V2、V3··· |
encoding | 若文件中包含非ASCII字符字段,則使用此參數進行設置,可確保以正確的編碼方式讀取,避免出現亂碼 |
更多高級選項包括:覆蓋默認的行名、列名和類,指定輸入文件的字符編碼,以及輸入的字符串格式的列如何聲明
CSV文件——read.csv()
read.csv函數可讀入一個逗號分隔文件並將其保存為一個數據框,其格式如下:
read.csv(file,header = TRUE,sep = “,”,quote = “” “,dec=” . ",fill = TRUE,comment.char = " ",ecoding = "unknown ",…)
參數 | 描述 |
---|---|
file | 文件名(包含在“”內,或使用一個字符型變量),可能需要全路徑(即使是在Windows下,符號 \ 也不允許包含在內,必須用 / 或者 \ \ 替換)或者一個URL鏈接(用URL對文件遠程訪問) |
header | 一個邏輯值,用來反映這個文件的第1行是否包含變量名,為TRUE時表示文件的第1行為變量名 |
sep | 文件中的字段分隔符,CSV文件默認為sep=”,” |
quote | 指定用於包圍字符型數據的字符 |
dec | 用來標識小數點的字符 |
fill | 如果為TRUE且所有行中的變量數目並不相同,則用空白填補 |
comment.char | 包含單個字符或空字符串的長度為1的字符向量,以這個字符開頭的行將被忽略(要禁用這個參數,可使用comment.char=”” |
encoding | 若文件中包含非ASCII字符字段,則使用此參數進行設置,可確保以正確的編碼方式讀取,避免出現亂碼 |
與此相反的任務是寫入文件,write.table和write.csv分別對應著read.table和read.csv的讀操作
以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。如有錯誤或未考慮完全的地方,望不吝賜教。
推薦閱讀:
- None Found