0

I want to manipulate different .csv files through a loop and a list. Works fine, but I for the output, I have to create many .xlsx files and the files have to be named according to the value of a certain variable.

I've already tried piping the write_xlsx function with ifelse condition like:

for (i in 1:length(files)) {
files[[i]] %>% 
write_xlsx(files[[i]], paste(ifelse(x="test1", "/Reportings/test1.xlsx", 
ifelse(x="test2", "/Reportings/test2.xlsx", "test3")
}

I expect that multiple .xlsx files will be created in the folder Reportings.

  • 1
    Couldn't you just run write_xlsx(files[[i]], paste("/Reportings/", x, ".xlsx") or do you need more conditions? – AStieb Oct 25 '19 at 10:28

1 Answers1

0

Not easy to answer precisely with the information you gave, but here is a minimal example that seems to do what you want :

According that your list is composed of matrix, that x is a variable and that it always has the same value.

df=data.frame(x=rep("test1",3),y=rep("test1",3))
df2=data.frame(x=rep("test2",3),y=rep("test2",3))

files=list(df,df2)
files[[1]]$x[1]

for(i in 1:length(files)){
write.xlsx(files[[i]],paste0("Reportings/",files[[i]]$x[1],".xlsx"))
}
Félix Cuneo
  • 159
  • 6