欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

R語(yǔ)言-如何循環(huán)讀取excel并保存為RData

 更新時(shí)間:2021年04月20日 14:36:17   作者:t156xxxx4671  
這篇文章主要介紹了R語(yǔ)言循環(huán)讀取excel并保存為RData的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧

之前寫(xiě)過(guò)一個(gè)循環(huán)讀取excel的代碼,最近又有了新的需求:循環(huán)讀取xlsx文件中的多個(gè)sheet,處理完之后循環(huán)輸出到xlsx文件中的多個(gè)sheet中,總結(jié)一下。

1、循環(huán)讀取csv文件并輸出為RData格式

homedir <- "D:/Documents/tina/Database" #設(shè)置路徑
setwd(homedir)
temp = list.files(pattern="*.csv")
for (i in 1:length(temp)) {
  filename <- substr(temp[i], 1, nchar(temp[i])-4);
  assign(filename, read.csv(temp[i], header = T));
  save(list = filename, file = paste(filename, ".Rdata", sep = ""))
}

有了這段代碼,要循環(huán)讀取xlsx里面的多個(gè)sheet就簡(jiǎn)單多了,畢竟xlsx的文件名都是一致的,只是sheetIndex不一樣:

2、循環(huán)讀取xlsx文件中的多個(gè)sheet:

library(xlsx)
sheet.index <- c(1:12)
data.list <- list()
for(i in sheet.index){
  filename <- paste0("month",i)
  data.list[[i]] <- read.xlsx("E:/某某中心年收入.xls", encoding = "UTF-8", sheetIndex = i)
  assign(filename, data.list[[i]])
}

下面這面這段代碼是抄來(lái)的,還沒(méi)來(lái)得及嘗試能不能循環(huán)寫(xiě)入sheet了。

3、循環(huán)創(chuàng)建xlsx中的多個(gè)sheet

library(XLConnect)
wb <- loadWorkbook('data.xlsx', create = TRUE) # 創(chuàng)建excel工作簿
# 創(chuàng)建sheet
for (name in paste0('sheet', 1:3)) {
    createSheet(wb, name)
}
# 分別向3個(gè)sheet寫(xiě)入數(shù)據(jù)
writeWorksheet(wb, data_frame_1, 'sheet1')
writeWorksheet(wb, data_frame_2, 'sheet2')
writeWorksheet(wb, data_frame_3, 'sheet3')
saveWorkbook(wb)

今天嘗試了第3部分的代碼,發(fā)現(xiàn)循環(huán)寫(xiě)入的功能無(wú)法實(shí)現(xiàn),于是使用openxlsx包解決該問(wèn)題。

4、創(chuàng)建xlsx,寫(xiě)入多個(gè)sheet

首先按照網(wǎng)上的教程安裝了openxlsx,并進(jìn)行了實(shí)驗(yàn):

library(openxlsx)
 wb <- createWorkbook()
 addWorksheet(wb, "Sheet 1")
 c1 <- createComment(comment = "this is comment")
 writeComment(wb, 1, col = "B", row = 10, comment = c1)
 s1 <- createStyle(fontSize = 12, fontColour = "red", textDecoration = c("BOLD"))
 s2 <- createStyle(fontSize = 9, fontColour = "black")
 c2 <- createComment(comment = c("This Part Bold red\n\n", "This part black"), style = c(s1, s2))
 c2
 writeComment(wb, 1, col = 6 , row = 3, comment = c2)
 addWorksheet(wb, "Sheet 1")
 saveWorkbook(wb, file = "E:/信和資料/項(xiàng)目/門(mén)店績(jī)效/湖南益陽(yáng)/writeCommentExample.xlsx", overwrite = TRUE)

但在最后保存時(shí)報(bào)錯(cuò),因?yàn)槭窃趙indows環(huán)境下,保存時(shí)提示安裝Rtools,windows系統(tǒng)下安裝完成后,需要添加系統(tǒng)變量D:\Rtools\bin;D:\Rtools\gcc-4.6.3\bin,添加完成后,重啟電腦,發(fā)現(xiàn)保存成功。

下面,需要循環(huán)將多個(gè)sheet寫(xiě)入xlsx文件中:

wb <- createWorkbook()
addWorksheet(wb,"xsjshouru12")
addWorksheet(wb, "xsjshouru18")
addWorksheet(wb, "xsjshouru24")
addWorksheet(wb, "xsjshouru36")
writeData(wb,"xsjshouru12",xsjshouru12)
writeData(wb,"xsjshouru18",xsjshouru18)
writeData(wb,"xsjshouru24",xsjshouru24)
writeData(wb,"xsjshouru36",xsjshouru36)
#保存到本地文件
saveWorkbook(wb,file = "E:/信和資料/項(xiàng)目/門(mén)店績(jī)效/湖南益陽(yáng)/薪水借.xlsx", overwrite = TRUE)

讀入數(shù)據(jù):

files = list.files(pattern='*.Rdata')
fload = lapply(files, function(x) get(load(x)))

合并多個(gè)數(shù)據(jù)框

edata4 <- Reduce(function(x,y) merge(x = x, y = y, by = c('lon','lat')),list(dtr01, dtr02, dtr03))

補(bǔ)充:R語(yǔ)言:批量循環(huán)讀取一系列excel文件

例如有20個(gè)excel文件分別代表20個(gè)亞組的數(shù)據(jù),文件名為亞組名P01-P20,每個(gè)文件中的變量個(gè)數(shù)和名稱等都是相同的,可通過(guò)以下命令實(shí)現(xiàn)一次性讀取20個(gè)excel,并生成一個(gè)新變量提示來(lái)自哪個(gè)亞組(同時(shí)展示如何讀取每個(gè)excel第二列數(shù)據(jù)的前11個(gè)字符生成一個(gè)新變量id)。

例如P01數(shù)據(jù)如下:

首先

讀取excel文件先要安裝package: XLConnect:

install.packages(XLConnect)
library(XLConnect)

其次

生成代表亞組名稱的新變量和第二列前11個(gè)字符的新變量:

temp<-list.files(pattern="*.xls")     //生成一個(gè)新變量temp代表文件路徑中所有后綴為xls的文件的文件名
head(temp)
a=readWorksheetFromFile(temp[1],sheet=1)         //讀取temp1號(hào)excel即P01,命名為數(shù)據(jù)庫(kù)a
a$plate=substr(as.character(temp[1]),1,3)        //生成變量plate,數(shù)值為temp里的plate名稱(字符1到3)
a$id=substr(a[,2],1,11)     //生成變量id, 值為第二列數(shù)據(jù)的前11個(gè)字符
ncol(a)   //看看a有多少個(gè)變量,新生成的plate和id變量為最后兩個(gè),假設(shè)為第58和59個(gè)變量
write.table(a[,c(58,59)],file = "newfile.txt",row.names=F, na="",col.names=FALSE, sep=" ",append = T,quote=F)  
//生成txt文件newfile.txt為p01文件中的plate和id,展示如下

最后

對(duì)P02-20寫(xiě)一個(gè)for循環(huán)語(yǔ)句,導(dǎo)入進(jìn)去即可

for (i in 2: length(temp)){
  newfile=read.table("newfile.txt")
  b=readWorksheetFromFile(temp[i],sheet=1)
  b$row=substr(as.character(temp[i]),1,3)
  b$extract=substr(b[,2],1,11)
  write.table(b[,c(58,59)],file = "newfile.txt",row.names=F, na="",col.names=FALSE, sep=" ",append = T,quote=F)
}

命令翻譯:對(duì)每一個(gè)i值,i從2到temp的最大值之間取值,生成一個(gè)文件newfile=之前P01的txt文件,下面四行是重復(fù)上面生成P01file的過(guò)程。

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。

相關(guān)文章

  • R語(yǔ)言ggplot2邊框背景去除的實(shí)現(xiàn)

    R語(yǔ)言ggplot2邊框背景去除的實(shí)現(xiàn)

    這篇文章主要介紹了R語(yǔ)言ggplot2邊框背景去除的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • Rstudio中安裝package出現(xiàn)的問(wèn)題及解決

    Rstudio中安裝package出現(xiàn)的問(wèn)題及解決

    這篇文章主要介紹了Rstudio中安裝package出現(xiàn)的問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-04-04
  • Rcpp和RcppArmadillo創(chuàng)建R語(yǔ)言包的實(shí)現(xiàn)方式

    Rcpp和RcppArmadillo創(chuàng)建R語(yǔ)言包的實(shí)現(xiàn)方式

    這篇文章主要為大家介紹了Rcpp和RcppArmadillo創(chuàng)建R包實(shí)現(xiàn)方式,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2021-11-11
  • R語(yǔ)言隨機(jī)數(shù)生成的實(shí)現(xiàn)

    R語(yǔ)言隨機(jī)數(shù)生成的實(shí)現(xiàn)

    這篇文章主要介紹了R語(yǔ)言隨機(jī)數(shù)生成的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • R語(yǔ)言3.6.3安裝超詳細(xì)教程附安裝包

    R語(yǔ)言3.6.3安裝超詳細(xì)教程附安裝包

    這篇文章主要介紹了R語(yǔ)言3.6.3安裝教程,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-03-03
  • R語(yǔ)言多元Logistic邏輯回歸應(yīng)用實(shí)例

    R語(yǔ)言多元Logistic邏輯回歸應(yīng)用實(shí)例

    這篇文章主要給大家介紹了關(guān)于R語(yǔ)言多元Logistic邏輯回歸應(yīng)用的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • R語(yǔ)言開(kāi)發(fā)之CSV文件的讀寫(xiě)操作實(shí)現(xiàn)

    R語(yǔ)言開(kāi)發(fā)之CSV文件的讀寫(xiě)操作實(shí)現(xiàn)

    這篇文章主要介紹了R語(yǔ)言開(kāi)發(fā)之CSV文件的讀寫(xiě)操作實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • R語(yǔ)言實(shí)現(xiàn)地理加權(quán)回歸(GWR)

    R語(yǔ)言實(shí)現(xiàn)地理加權(quán)回歸(GWR)

    這篇文章主要為大家介紹了R語(yǔ)言實(shí)現(xiàn)地理加權(quán)回歸(GWR)操作流程示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-10-10
  • R語(yǔ)言兩組變量特征相關(guān)關(guān)系熱圖繪制畫(huà)法

    R語(yǔ)言兩組變量特征相關(guān)關(guān)系熱圖繪制畫(huà)法

    本文為大家介紹了如何畫(huà)兩組變量(特征)的相關(guān)關(guān)系熱圖的方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步
    2022-02-02
  • R語(yǔ)言繪制Facet violin plot小提琴刻面圖實(shí)現(xiàn)示例

    R語(yǔ)言繪制Facet violin plot小提琴刻面圖實(shí)現(xiàn)示例

    這篇文章主要為大家介紹了R語(yǔ)言繪制Facet violin plot小提琴刻面圖的實(shí)現(xiàn)示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步
    2022-02-02

最新評(píng)論