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
在主表上添加了子表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
在主表上添加子表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
在主表上添加了子表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")
输出
子表1添加到主表中
子表2添加到主工作表
子表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")
输出
子表1添加到主表中
子表2添加到主工作表