![](/img/trans.png)
[英]Excel misses values from numeric vector with write.table function in R
[英]Function write.table() is converting my character column to numeric when exporting to excel. How can I prevent this?
我有一個 dataframe 以類似的方式:
Material c1 c2 c3 c4 c5 c6
1 0111 30 44 24 25 52 27
2 0112 19 70 93 23 68 100
3 1124 22 NA 79 18 133 143
4 2389 79 NA NA 81 60 NA
5 3480 57 8 95 62 NA 90
6 0134 350 60 50 302 44 4
在這里我強制作為字符類型,但在我真正的 dataframe 中它已經是。
df['Material']=as.character(df['Material'])
sapply(df,mode)
write.table(df, paste(".\\exports\\", "dummy.csv", sep = ""), sep = ";", dec = ",",row.names=F)
問題是,當我導出到 excel 時,我的 Material 列變成了數字,我丟失了開頭的 0,它是材料代碼描述的一部分。 我的行已排序,我希望將它們放在原始 position 中。 有沒有辦法防止這種情況發生? 導出時將我的材料列保持為字符?
如果您想復制它,我嘗試創建一個虛擬版本:
df <- data.frame(Material = c('0111','0112','1124','2389','3480'),
actual_202009 = c(30,19,22,79,57),
actual_202010 = c(44,70,NA,NA,8),
actual_202011 = c(24,93,79,NA,95),
pred_202009 = c(25,23,18,81,62),
pred_202010 = c(52,68,133,60,NA),
pred_202011 = c(27,100,143,NA,90))
如評論中所述:
這行得通。
library(openxlsx)
write.xlsx(df, file = "dummy.xlsx")
盡管 csv 中的數據在 Material 列周圍有引號,但 excel 喜歡為您考慮而不尊重字符引號。 現在您可以將 libreoffice 與 calc 一起使用。 這將打開文本導入選項,您可以在其中告訴它第一列是文本,並且它將保留 Material 列的正確格式。
但最簡單的就是使用上面的代碼。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.