您好,登錄后才能下訂單哦!
這期內容當中小編將會給大家帶來有關openxlsx包批量導入導出Excel文件的實用技巧是什么,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
install.packages("openxlsx")library("openxlsx")
導出excel文件
導出excel文件使用的是write.xlsx函數,通過介紹我們可以看到該函數主要是將數據框導出為xlsx文件,同時由于excel可存在多個sheet,該函數也支持導出a list of data.frames。
因此命令如下:
l <- list("IRIS" = iris, "MTCARS" = mtcars) # 將R內置數據集iris和mtcars創建為listwrite.xlsx(l, "writeList.xlsx") #excel文件導出在該目錄下并命名為writeList.xlsx# 要導出單個文件時,直接write.xlsx(變量名稱,“保存位置與文件名")即可
可以看到最后導出的excel存在IRIS和MTCARS兩個sheet
導入excel文件
文件的導入是使用read.xlsx函數,使用的方法也非常簡單,主要設置excel的文件位置以及sheet名稱或順序(如果存在多個sheet)
比如導入我們剛剛創建的excel文件中的第一個sheet,則命令為
iris <- read.xlsx(xlsxFile = "writeList.xlsx", sheet = 1)# 或者iris <- read.xlsx(xlsxFile = "writeList.xlsx", sheet = "IRIS")
批量導入excel文件中的多個sheet
上述命令只能導入excel的一個sheet,在實際過程中可能需要一次性導入多個sheet,則可以使用循環函數實現:
data.list <- list() # 創建一個空的listsheetname <- getSheetNames("writeList.xlsx") #使用getSheetNames函數獲取excel文件的sheet名稱for(i in 1:length(sheetname)){ data.list[[i]]<-read.xlsx("writeList.xlsx",sheet=i) # 循環讀取excel文件的每個sheet names(data.list)[i] <- sheetname[i] #將data.list的每個文件名命名為每個sheet的名字}
批量導入多個excel文件
有時需要將目錄下的多個文件一次性導入R中,則可以使用如下命令實現,但是需注意的是該命令只支持每個excel只有一個sheet
myexcelfile = list.files(pattern="*.xlsx") # list.files函數中用正則表達式匹配文件名的一個選項list2env( lapply(setNames(myexcelfile, make.names(gsub("*.xlsx$", "", myexcelfile))), read.xlsx), envir = .GlobalEnv) #匹配以.xlsx結尾的文件名,將其替換為空,也就是去掉.xlsx,只留文件名作為變量名
批量導入多個txt或者excel文件
同理我們可以利用該命令批量導入csv或者txt文檔
mytxtfile = list.files(pattern="*.txt") # 生成.txt文件的列表list2env( lapply(setNames(mytxtfile, make.names(gsub("*.txt$", "", mytxtfile))), read.table,header=TRUE,sep="\t"), envir = .GlobalEnv) mycsvfile = list.files(pattern="*.csv") # 生成.csv文件的列表list2env( lapply(setNames(mycsvfile, make.names(gsub("*.csv$", "", mycsvfile))), read.csv,header=TRUE,check.names=FALSE), envir = .GlobalEnv)
上述就是小編為大家分享的openxlsx包批量導入導出Excel文件的實用技巧是什么了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。