R语言 把数据帧导出到多个Excel工作表中

R语言 把数据帧导出到多个Excel工作表中

excel工作簿是用来包含存储在类似单元格结构中的表格信息的。R中的每个excel工作簿都包含多个工作表,以包含属于同一领域信息的数据。excel工作表可以包含属于不同数据类型的列。Excel文件可以由使用R的数据框架创建。

使用xlsx库在R中生成多个xlsx输出结果

R中的xlsx包可以用来对Excel文件进行读、写和操作。它是所有不同环境中最突出的包之一,可以执行Excel文档(xls和xlsx)的格式化。它必须被下载和安装,并使用命令下载到工作空间。

install.packages("xlsx")

一个数据框架可以用data.fram()方法来声明,在这里可以声明列和行。每一列都与一个固定的数据类型和列名相关。数据框架将数据存储在一个类似于表格的结构中,这可以被写入Excel表格,并有一个自定义的名称。本软件包中的write.xlsx()方法用于将数据框架写入工作簿的指定工作表。它的语法如下。

write.xlsx(dataframe , file=filepath , sheetName )

参数 :

  • dataframe – 要写入Excel工作表的数据框架
  • filepath – 要创建的带有文件名的文件路径
  • sheetName - 要写入数据框架的工作表的名称。

如果数据框必须连续写入下一个工作表,那么write.xlsx()中的append选项必须设置为TRUE,这样最初输入到前面工作表的数据就不会被覆盖。

# creating data frames
df1 = data.frame(col1 = c(1:5),
                col2 = c("Michael","Lincoln","Daniel","Fernandes","Eerie"),
                col3 = c(TRUE,FALSE,FALSE,TRUE,TRUE))
df2 = data.frame(col1 = letters[1:3],
                col2 = c("Monday","Tuesday","Wednesday"))
df3 = data.frame(col1 = c(1.2,2.3,5.3,7.3),
                col2 = c("A","B","C","D"))

现在,让我们以渐进的方式创建工作表。

# writing the first data frame on sheet1
library(xlsx)
write.xlsx(df1,
           file="/Users/mallikagupta/Desktop/geeks_multiple.xlsx",
           sheetName="sht1")
print("Data Frame1")
print(df1)

输出

[1] "Data Frame1"
col1      col2  col3
1    1   Michael  TRUE
2    2   Lincoln FALSE
3    3    Daniel FALSE
4    4 Fernandes  TRUE
5    5     Eerie  TRUE

在R中把数据帧导出到多个Excel工作表中

在主表上添加了子表1

这第一个数据框已经作为子表-1添加到主表geek_multiple.xlsx中。

# writing the second data frame on sheet2
write.xlsx(df2,
           file="/Users/mallikagupta/Desktop/geeks_multiple.xlsx",
           sheetName="sht2", append=TRUE)
print("Data Frame2")
print(df2)

输出

[1] "Data Frame2"
col1      col2
1    a    Monday
2    b   Tuesday
3    c Wednesday

在R中把数据帧导出到多个Excel工作表中

在主表上添加子表2

这第二个数据框已经作为子表-2添加到主表geek_multiple.xlsx中。

# writing the third data frame on sheet3
write.xlsx(df3,
           file="/Users/mallikagupta/Desktop/geeks_multiple.xlsx",
           sheetName="sht3", append=TRUE)
print("Data Frame3")
print(df3)

输出

[1] "Data Frame3"
col1 col2
1  1.2    A
2  2.3    B
3  5.3    C
4  7.3    D

在R中把数据帧导出到多个Excel工作表中

在主表上添加了子表3

通过这最后一段代码,我们已经成功地将第三个数据框架添加到我们的主excel文件geek_multiple.xlsx中,作为第三张子工作表。所以,在这里我们可以看到,我们已经用不同的数据框架为这个geek_multiple.xlsx文件填充了多个工作表。

使用openxlsx库在R中生成多个xlsx输出结果

R中的openxlsx包可以下载并安装到R环境中,用于方便地执行读/写和格式化事务。它可以用来将数据框架或Tibbles写到Excel表上。它还可以用来给工作表设置样式。

install.packages("openxlsx")

创建的数据框架可以同时映射到Excel工作簿的工作表,使用列表方法。一个指向数据框架值的工作表名称的关联映射被创建。这将创建一个数据框架的列表。

list(key = value, …)

参数:

keyvalue – 表明工作表名称和相应的数据框架的键值对。

然后,write.xlsx()方法被调用,以便将整个数据框架列表写入指定的文件路径。

# installing the required libraries
library(openxlsx)
 
# mapping the data frames onto the list
data_frames <- list("Sheet 1" = df1, "Sheet 2" = df2, "Sheet 3" = df3)
 
# writing the list of data frames onto the xlsx file
write.xlsx(data_frames,
           file = "/Users/mallikagupta/Desktop/multiple_outputs.xlsx")

输出

在R中把数据帧导出到多个Excel工作表中

子表1添加到主表中

在R中把数据帧导出到多个Excel工作表中

子表2添加到主工作表

在R中把数据帧导出到多个Excel工作表中

子表3添加到主表

使用writexl库在R中生成多个xlsx输出结果

writexl包用于提供write_xlsx()方法,该方法将数据帧写入Excel工作表,并指定扩展名、xls和xlsx。它可以通过以下命令下载并安装到工作环境中。

install.packages(writexl)

wirte_xlsx()方法用于将数据帧列表写到指定的文件路径位置。这些数据帧是在文件路径位置中指定的工作表上创建的。

Write_xlsx(list-of-df, file-path)

参数:

  • listofdf – 要写到指定文件路径的数据框
  • filepath – 要写入xlsx文件的文件路径
# creating data frames
df1 = data.frame(col1 = c(1:5),
                 col3 = c(TRUE,FALSE,FALSE,TRUE,TRUE))
print("Data Frame1")
print(df1)

输出

[1] "Data Frame1"
 col1  col3
1    1  TRUE
2    2 FALSE
3    3 FALSE
4    4  TRUE
5    5  TRUE

现在,让我们再创建一个数据框架,这样,我们就可以使主工作表中至少有两个子工作表。

df2 = data.frame(col1 = letters[1:3],
                 col4 = c(10,20,30)
                 )
print("Data Frame2")
print(df2)

输出

[1] "Data Frame2"
 col1 col4
1    a   10
2    b   20
3    c   30

现在,让我们创建主工作表,其中的子表1包含来自第一个数据框的数据,子表2包含来自第二个数据框的数据。

# installing the required libraries
library(writexl)
 
# mapping the data frames onto the list
data_frames <- list("sht1" = df1, "sht2" = df2)
 
# writing the list of data frames onto the xlsx file
write_xlsx(data_frames,
           "/Users/mallikagupta/Desktop/approach3.xlsx")

输出

在R中把数据帧导出到多个Excel工作表中

子表1添加到主表中

在R中把数据帧导出到多个Excel工作表中

子表2添加到主工作表

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程