[英]How to export data.frame column type to XLSX
我有一个数据集,其中包含 5 列“CHR”类型和接下来的 116 列“NUM”类型。
基于数字列,我正在创建另外 64 个计算列,这些列是我需要的其他基础的一列的除法或减法。 我面临的问题是所有这些计算的列都存储为列类型 data.frame。
我尝试检查数据,我可以看到它是数字值以及错误值(如 NaN 或 INF 等)的混合,因为在某些地方,数字会被 0 整除。
在尝试使用“Write_Xlsx”导出它时,它会完整地导出文件,但是计算列的值在 excel 文件中显示为空白。 我不确定为什么并且似乎无法使其工作。
到目前为止,我已经尝试了以下代码来转换 data.frames 列,但似乎都抛出错误或将所有数值转换为 NA。
DFT$`VALMTHSPLY7-22` <- as.numeric((DFT$`VALMTHSPLY7-22`))
DFT$`VALMTHSPLY6-22` <- as.numeric(gsub(",", ".", DFT$`VALMTHSPLY6-22`))
as.data.frame(lapply(DFT, as.numeric))
由代表 package (v2.0.1) 于 2022 年 8 月 16 日创建
我已经尝试了更多,但似乎在我的实验堆下,我似乎无法找到它们。
我在这里有两个问题:-
期待在这里提供帮助。 下面是我的计算列的代码(其中一部分,因为复制所有 64 行不会产生任何额外的东西)
DFT$VALGR19 <- round((DFT[, 7]/DFT[, 6] - 1) * 100, 2)
DFT$MSVALGR22 <- round((DFT[, 68] - DFT[, 67]), 2)
由代表 package (v2.0.1) 于 2022 年 8 月 16 日创建
这是用于写入 Excel 的代码,
write_xlsx(DFT, "C:\\Users\\I0510906\\Desktop\\Files\\RAuto\\Region-Data-MS-GR.xlsx")
由代表 package (v2.0.1) 于 2022 年 8 月 16 日创建
这是我用于创建列的计算代码:
DFT$VALGR19 <- round((DFT[, 7]/DFT[, 6] - 1) * 100, 2)
由代表 package (v2.0.1) 于 2022 年 8 月 16 日创建
当我检查两个计算列的结构时,它们返回为:-'data.frame':1126 obs。 1 个变量:
当我检查 Table() 属性时,我可以看到它是数值、无限和 NaN 值的混合。
当我将它们导出到 excel 时,列名被导出到 excel 但单元格为空白。
为了克服这个问题,我使用下面的代码来转换列(因为总共有 64 个,我不知道如何为它们编写循环):-
DFT$VALGR19 <- sapply(DFT$VALGR19, function(x) as.numeric(as.character(x)))
由代表 package (v2.0.1) 于 2022 年 8 月 16 日创建
这会将列转换为 NUMERIC。
使用相同的导出代码,现在我可以导出文件并导出所有值。 在 excel 中,我运行一个简单的搜索并将 INF 和 NaN 替换为空白。
然而,我仍在摸不着头脑的两件事是:-
请让我知道是否需要更多内容,并且很乐意分享。
这可能是一种解决方法,正如您的问题所述,问题是您的 r dataframe 中的 null 和 NaN 值不会显示在您的 xlsx 中。 以下应该有效:
DFT <- format(DFT)
write_xlsx(DFT, "C:\\Users\\I0510906\\Desktop\\Files\\RAuto\\Region-Data-MS-GR.xlsx")
format() 是一个 function '用于漂亮的打印' 将 dataframe 中的所有值转换为字符。 这意味着当您想要进行计算时,您必须将它们更改回 xlsx 文件中的数字。 但这应该适用于将 dataframe 中的所有值打印到 xlsx 文件。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.