如何用R的openxlsx2包将数据框/向量横向写入Excel?
解决openxlsx2横向写入向量的问题
openxlsx2的add_data函数默认会将一维向量按垂直(列)方向写入Excel。要实现横向写入(A1、B1、C1),只需将向量转换为行维度的结构(如单行矩阵或转置后的向量),具体有两种常用方法:
方法1:转换为单行矩阵
通过matrix()函数将向量转为行数为1的矩阵,明确指定行维度,让函数按行写入:
library(openxlsx2) wb = wb_workbook() wb$add_worksheet('test') vec = c('Yes', 'Not Found', 'Yes') # 转为单行矩阵后写入 wb$add_data(sheet = 'test', x = matrix(vec, nrow = 1)) # 保存文件验证结果 wb$save('test.xlsx')
方法2:转置向量
利用t()函数转置向量(转置后向量会自动变为单行矩阵结构),同样能实现横向写入:
library(openxlsx2) wb = wb_workbook() wb$add_worksheet('test') vec = c('Yes', 'Not Found', 'Yes') # 转置后写入 wb$add_data(sheet = 'test', x = t(vec)) # 保存文件验证结果 wb$save('test.xlsx')
原理说明
openxlsx2会根据输入对象的维度判断写入逻辑:
- 一维向量:默认按列方向写入(A1、A2、A3)
- 二维结构(如单行矩阵、单行数据框):按行方向写入(A1、B1、C1)
内容的提问来源于stack exchange,提问作者Kurt Amend
相关产品推荐
相关产品推荐

