R 循环 write.xlsx()

R loop over write.xlsx()

我想使用 openxlsx 中的函数 write.xlsx() 将几个数据帧导出到 excel 文件。因此,例如以下内容:

library(openxlsx)
x <- c(1,2,3)
for (i in x) {
  name <- paste("sheet", i, sep = "")
  assign(name, data.frame(1:4, 2:3))
  path <- paste("/some_directory/",name,".xlsx" , sep = "")
  write.xlsx(name, file = path)
}

这确实创建了三个不同的数据框,值为 1 到 4 和 2 到 3,它们具有正确的名称,它还创建了三个具有正确名称的不同 excel 文件,但是 excel 文件只包含名称而不是数据框中的值。有谁知道如何更改它?

您需要将 data.frame 保存在一个变量中:

library(glue)
library(openxlsx)
x <- c(1,2,3)
for (i in x) {
  name <- paste("sheet", i, sep = "")

  df <- data.frame(1:4, 2:3) # This step is missing in your example

  assign(name, df)
  path <- glue("/some_directory/{name}.xlsx", name = name)
  write.xlsx(df, file = path)
}
``