R語言的文件讀寫

首先設(shè)置Rstudio的讀取目錄很重要

getwd()        #  查看Rstudio的運(yùn)行目錄
setwd("需要設(shè)置絕對(duì)的路徑")     #  更改文件路徑到你需要操作的文件所在的目錄

1 讀取txt文件**

ddd<-read.table("DAVID.txt",sep = "\t",header = T,na.strings = c("NA"),na.strings = c("NA"),stringsAsFactors = F,comment.char = '!')
a <- read.table("GSE156376_series_matrix.txt",sep = "\t"
                ,header = T,
                comment.char = '!')

sep = "\t"表示制表符分隔
header = T表示第一行包含變量名
na.strings = c("NA")表示文件中的缺失數(shù)據(jù)都是用NA代替

具體參數(shù)信息如下

圖片

2 讀取csv文件**

R讀取csv文件和讀取txt文件很類似,使用的是read.csv()代碼,參數(shù)基本上也是一樣的

這是一個(gè)csv文件,一般都是逗號(hào)分隔

ddd<-read.csv("nzp.csv",sep = ",",header = T,na.strings = c("NA"))

3 讀取xls和xlsx文件**

讀取xls或者xlsx需要安裝R包,我們這里介紹readxl的使用

#install.packages("xlsx")
help("xlsx")#查看xlsx的參數(shù)及用法
data <- read.csv("nzp2.csv", encoding="UTF-8")
print(data)
getwd()
setwd("/Users/nzp/single_cell_seq_git/Practice_With_R")
print(ncol(data))  # 列數(shù)
print(nrow(data))  # 行數(shù)
like <- max(data$likes)
print(like)
data <- read.csv("nzp2.csv", encoding="UTF-8")

# likes 為 222 的數(shù)據(jù)
retval <- subset(data, likes == 222)
print(retval)
retval <- subset(data, likes > 1 & name=="Runoob")
print(retval)
#保存為 CSV 文件
# 寫入新的文件
write.csv(retval,"runoob.csv")
newdata <- read.csv("runoob.csv")

#字符合并命名文件名
 write.csv(xx, file=paste0("seurat_clusters_",n, "_gene_list.csv"))

print(newdata)
# X 來自數(shù)據(jù)集 newper,可以通過參數(shù) row.names = FALSE 來刪除它:
# 寫入新的文件
write.csv(retval,"runoob.csv", row.names = FALSE)
newdata <- read.csv("runoob.csv")
print(newdata)


# 驗(yàn)證包是否安裝
any(grepl("xlsx",installed.packages()))
any(grepl("XML",installed.packages()))
library("xlsx")
# 讀取 sites.xlsx 第一個(gè)工作表數(shù)據(jù)
getwd()
setwd("/Users/nzp/single_cell_seq_git/Practice_With_R")
data <- read.xlsx("nzp.xlsx", sheetIndex = 1)
print(data)


install.packages("XML", repos = "https://mirrors.ustc.edu.cn/CRAN/")
# 載入 XML 包
library("XML")
# 設(shè)置文件名
result <- xmlParse(file = "nzp2.xml")
# 輸出結(jié)果
print(result)
# 提取根節(jié)點(diǎn)
rootnode <- xmlRoot(result)
# 統(tǒng)計(jì)數(shù)據(jù)量
rootsize <- xmlSize(rootnode)
# 輸出結(jié)果
print(rootsize)
rootnode <- xmlRoot(result)

# 查看第 2 個(gè)節(jié)點(diǎn)數(shù)據(jù)
print(rootnode[2])
# 查看第 2 個(gè)節(jié)點(diǎn)的第  1 個(gè)數(shù)據(jù)
print(rootnode[[2]][[1]])
# 查看第 2 個(gè)節(jié)點(diǎn)的第 3 個(gè)數(shù)據(jù)
print(rootnode[[2]][[3]])
# 轉(zhuǎn)為列表
xml_data <- xmlToList(result)
print(xml_data)
print("============================")
# 輸出第一行第二列的數(shù)據(jù)
print(xml_data[[1]][[2]])
# xml 文件數(shù)據(jù)轉(zhuǎn)為數(shù)據(jù)框
xmldataframe <- xmlToDataFrame("nzp2.xml")
print(xmldataframe)


#R 讀取JSON 文件
install.packages("rjson", repos = "https://mirrors.ustc.edu.cn/CRAN/")
# 載入 rjson 包
library("rjson")
# 獲取 json 數(shù)據(jù)
result <- fromJSON(file = "nzp4.json")
# 輸出結(jié)果
print(result)
print("===============")
# 輸出第 1 列的結(jié)果
print(result[1])
print("===============")
# 輸出第 2 行第 2 列的結(jié)果
print(result[[2]][[2]])
# 轉(zhuǎn)為數(shù)據(jù)框
json_data_frame <- as.data.frame(result)
print(json_data_frame)

批量讀取表達(dá)矩陣

library(Seurat)
library(dplyr)
library(Matrix)
library(stringr)
library(readr)
library(here)
FACS_files = list.files(here("00_data_ingest","00_facs_raw_data","FACS"), full.names = TRUE)

raw.data.list = list()
for (file in FACS_files){
  raw.data <- read.csv(file, row.names = 1)
  raw.data <- Matrix(as.matrix(raw.data), sparse = TRUE)
  raw.data.list <- append(raw.data.list, raw.data)
}

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

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