Цикл read.xlsx для чтения на нескольких листах и ​​сохранения их как отдельных DF - PullRequest
0 голосов
/ 20 июня 2019

Я хочу прочитать в листах 3: 8 моего файла Excel и сохранить их отдельно.

Я получил что-то вроде этого:

 for (y in 2012:2017){
     save("Year" ,y)<- for (i in 3:8)

{
   read_xlsx("/Users/.../Desktop/Kriminalität.xlsx", sheet = i , skip = 4)
}

Ответы [ 2 ]

1 голос
/ 20 июня 2019

Полагаю, вы хотите сохранить 5 листов как отдельные кадры данных и назвать их Год 2012, Год2013 .... Год2017.

Создайте пустой список и прочитайте листы как элементы. Назовите эти элементы соответствующим образом, а затем удалите список, чтобы получить отдельные кадры данных

library(openxlsx)

x=list()

for(i in 3: 8){
x[[i]]=read.xlsx("check.xlsx",sheet = i,colNames = T)
}

names(x)=paste0("Year",c(2012:2017))
list2env(x,envir=.GlobalEnv)
0 голосов
/ 20 июня 2019
setwd("your directory to excel ")

library(readxl)

data="Kriminalität.xlsx" # your excel name

n=8 #number of the sheets in your excel

for (i in 3:n){ 
 y=paste("sheet",i,sep="") 
  assign(y, read_xlsx(data, sheet = i ,skip = 4))
}

в разделе for (i in 3:n) вы можете определить свои листы для чтения, например, for (i in 3:8) означает чтение от листа3 до листа8

результаты для Excel с 3 листами for (i in 1:3):

results for a excel with 3 sheets

...