Day5:文件讀取

天才是百分之一的靈感加百分之九十九的汗水。 ——愛迪生

1. 文件讀取

read系列函數(shù):

# ex1 <- read.table("ex1.txt")
# read.table 默認 header = F
# ex1 <- read.table("ex1.txt",header = T)

# ex2 <- read.csv("ex2.csv")
# ex2 <- read.csv("ex2.csv",row.names = 1,check.names = F)
# 行名沒有正確讀進,參數(shù)row.names=1解決;
# 列名的減號被自動改為點號,為保證不修改,參數(shù)check.names=F解決。

規(guī)則:數(shù)據(jù)框不允許重復的行名

# rod = read.csv("rod.csv",row.names = 1) 
# 因為加了row.names = 1而報錯
# rod = read.csv("rod.csv")
2. 數(shù)據(jù)框?qū)С?/h5>

csv格式和table格式:

# write.csv(ex2,file = "example.csv")
# ex2是要導出的數(shù)據(jù)框變量名,example是給導出的文件命名,二者可以不同。
# write.table(ex2,file = "example.txt")

當'read.table'讀進來的數(shù)據(jù)框有問題時,一方面是修改參數(shù),另一方面可以用'read.csv'或者'read.delim'替代。
read.delim一定程度上替代read.table,讀取data.frame中又有空格又有制表符,實際上制表符才是真正的分隔符。

# read.delim("data.frame",check.names = F)
# 當列名中出現(xiàn)點號時,也同樣是被修改了,需要check.names = F保留特殊字符。

查看列名是否有重復值:

# b = read.delim("GSE217012_Normalized_RPKM_LOG2_matrix.txt.gz",check.names = F)
# unique(b$Name)
# length(b$Name) 比較和unique的數(shù)量是否相同,length(unique(b$Name))
# table(table(b$Name))
3. 其他用于讀取/導出文件的R包
# data.table包里的
# fread()
# library(data.table)
# ex1 = fread("ex1.txt")
# ex1 = fread("ex1.txt",data.table = F)   默認加上data.table = F,不錄入data.table屬性,只保留data.frame的屬性。

# rio包支持的文件格式多,如spss的結(jié)果,csv,xls,txt,esv,不需要加參數(shù),能解決大多數(shù)的數(shù)據(jù)框,但是出現(xiàn)問題不太好解決。
# library(rio)
# ex1 = import("ex1.txt") 
# import_list() **讀取含有多個工作簿的excel文件**
# export(ex1,file = "ex1,xlsx") 輸出

注意??:

  • fread()函數(shù)不適合用于讀取表達矩陣,因為不能將第一列設(shè)置為行名,可以用tibble包的函數(shù)轉(zhuǎn)換:
# library(tibble)
# ex2 = column_to_rownames(ex2,"V1")
  • 對于看不見的文件,可以逐行讀取,不需要文件解壓,直接看:
# tmp = readLines("ex1.txt")

指導老師:生新技能樹 小潔老師??

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容