R語言-如何將科學計數法表示的數字轉化為文本
統賽B組我們選擇瞭圖書館課題,獲得瞭數據,一時興起嘗試處理瞭一下門禁的數據,遇到瞭一些問題,特此記下,方便以後查閱。
門禁數據分為兩個變量,第一列為學號,第二列為進門時間,原本是Excel文件,為瞭方便讀入R我把它另存為瞭csv文件,但在讀入R以後出現瞭一些問題
1、學號被存儲為瞭科學計數法表示的數字
2、時間顯示的也不全面,有些亂碼
時間問題可以在Excel中把單元格格式設置一下就解決瞭,但是學號問題卻遇到瞭一些小麻煩,我本來是想用
menjin$studentcode <- as.character(menjin$studentcode)
來解決,但是卻。。。。沒有任何反應,情急之下我google瞭一下,終於找到瞭結決方法,
menjin$studentcode <- format(menjin$studentcode,digits = 14)
解決瞭這一問題
以下是format()函數具體的用法:
format(x, digits, nsmall, width)
digits, nsmall, and width are all optional: nsmall suggests how many decimal places to use;digits suggests how many significant digits to include; and width suggests how long the total character string should be.
補充:將科學計數法轉化為常規格式再轉化為字符串類型(String)
問題描述:
在向Datagrid(也包括datacell,和前端使用的框架有關)中導入數據的時候遇到瞭一個這樣的問題:當excel中的【單元格格式】設置為【數值】類型時,導入到datagrid中的數據發生瞭變化,如下圖:
要導入的數據:
導入後的結果:
分新原因:
經過調試發現,當excel中的【單元格格式】設置為【數值】類型時,java後臺獲取到的是使用科學計數法表示的,如下圖所示:
這時還是沒有問題的,但是結果為什麼出錯呢,是因為類型轉化的問題,這裡不能使用String.valueOf( ) 方法進行轉換。
解決問題:
使用數字類型格式化類 DecimalFormat順利地解決瞭這個問題,如下方法:
value=new DecimalFormat().format(cell.getNumericCellValue());//這裡得到的是用“,”隔開的數字串 value = value.replace(",", "");
結果如下:
為瞭方便設置數字格式,這裡簡單總結瞭 DecimalFormat順的構造方法,如下:
DecimalFormat下的方法不再一一展示,有需要的可以查詢一下。
以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。如有錯誤或未考慮完全的地方,望不吝賜教。
推薦閱讀:
- None Found