[英]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.