2015-02-23 57 views
0

我已存儲不同長度的前綴.. 片段表中的(ClusterTable中)R寫入數據幀列到csv具有前導零

ClusterTable中[ClusterTable中$ FeatureIndex == 「Prefix2」,「一個表FeatureIndex 」, 'FeatureValue')]

FeatureIndex FeatureValue 
80  Prefix2   80 
81  Prefix2   81 
30  Prefix2   30 
70  Prefix2   70 
51  Prefix2   51 
84  Prefix2   84 
01  Prefix2   01 
63  Prefix2   63 
28  Prefix2   28 
26  Prefix2   26 
65  Prefix2   65 
75  Prefix2   75 

和寫到csv文件使用下列:

write.csv(ClusterTable, file = "My_Clusters.csv") 

特徵值01失去前導零。

我嘗試了第一列轉換爲字符

ClusterTable$FeatureValue <- as.character(ClusterTable$FeatureValue) 

,並試圖寫入文件之前將其追加爲空字符串將其轉換爲字符串。

ClusterTable$FeatureValue <- paste("",ClusterTable$FeatureValue) 

此外,我在這個表中有不同長度的前綴,所以我不能使用固定長度的簡單格式說明符。即該表還具有值001(前綴3),0001(前綴4)等。 謝謝

+0

相關的問題,我發現 http://stackoverflow.com/questions/24043162/r-excel-leading-zeroes 但這是閱讀,並有固定的長度 – karx 2015-02-23 13:50:40

+0

當究竟它失去了「 0" ?我試圖寫和與R打開「01」(作爲字符),它工作正常。用任何文本編輯器打開它也應該可以正常工作。 – 2015-02-23 13:58:27

+0

在我的csv文件中。我使用這個csv文件作爲另一個程序的來源。 如果我打開並在csv中檢查,沒有前導零 – karx 2015-02-23 14:00:58

回答

2

當處理前導零時,你需要謹慎,如果出口到excel。 Excel有一種超越自我的傾向,並自動裁剪前導零。你的代碼很好,否則在任何其他文本編輯器中打開文件應該顯示零。

1

我知道這是一個老問題,但我偶然發現一個解決方案在Excel中打開的.csv輸出時保持領先零。在R寫入您的.csv之前,在每個值的前面加一個單引號,像這樣:

vector <- sapply(vector, function(x) paste0("'", x)) 

當你在Excel中打開輸出,撇號會告訴擅長把所有的字符,而不是下降導致零。此時,您可以將列格式化爲「文本」,然後執行查找並替換以刪除撇號(也許爲此創建一個宏)。

0

如果你只需要它的視覺,只需要添加一行你寫的CSV文件之前,因爲這樣的:

ClusterTable <- read.table(text=" FeatureIndex FeatureValue 
80  Prefix2   80 
      81  Prefix2   81 
      30  Prefix2   30 
      70  Prefix2   70 
      51  Prefix2   51 
      84  Prefix2   84 
      01  Prefix2   01 
      63  Prefix2   63 
      28  Prefix2   28 
      26  Prefix2   26 
      65  Prefix2   65 
      75  Prefix2   75", 
          colClasses=c("character","character")) 

ClusterTable$FeatureValue <- paste0(ClusterTable$FeatureValue,"\t") 

write.csv(ClusterTable,file="My_Clusters.csv") 

它增加了一個字符值的末尾,但它是隱藏在Excel中。

1

將文件保存爲一個CSV文件,但擴展名爲TXT。然後使用read.tablesep=","閱讀:

write.csv(ClusterTable,file="My_Clusters.txt") 
read.table(file=My_Clusters.txt, sep=",") 
0

如果你試圖打開與Excel該.csv,我建議寫,而不是到Excel。首先你必須填充數據。

library(openxlsx) 
    library(dplyr) 

    ClusterTable <- ClusterTable %>% 
    mutate(FeatureValue = as.character(FeatureValue), 
    FeatureValue = str_pad(FeatureValue, 2, 'left', '0')) 

    write.xlsx(ClusterTable, "Filename.xlsx")