2011-03-28 72 views
1

我試圖從狀態教育Access數據庫中將數據加載到R中的數據框中。該數據庫提供有關該州學校的信息,每所學校都有一個12位數的識別號碼。當我加載表從R中的大整數數據庫中加載表格

demo.factors <- sqlQuery(connection, "SELECT * FROM 'Demographic Factors' WHERE YEAR = 2010")

其轉換這個數字似乎是科學記數法(我的道歉不具有內部工作把握好這裏)。當我嘗試將它們轉換到整數,因爲他們在數據庫中使用

demo.factors$ENTITY_CD <- as.integer(demo.factors$ENTITY_CD)

我收到了一堆港定居人士及整數的不匹配原始。

我應該使用另一種數據類型嗎?有沒有辦法恢復原始整數或從一開始就導入它們?

非常感謝您的幫助!

回答

1

你的問題是一個整數值只能處理高達2 * 10^9(即〜9位數字)的數字。你的學校身份證號碼是12位數字,因此應該是班級數字或雙倍數字。

但這一切無關緊要的,因爲數量將被R.

正確處理在我看來,您有這個號碼的顯示的問題。你有很多選擇。這裏有幾個:

顯示的數字爲字符串:

x=999999999999 
as.character(x) 
[1] "999999999999" 

使用任何字符串格式化功能,以指定的格式。這仍然會將該值轉換爲字符顯示,但會爲您提供格式化的靈活性。例如,使用格式:執行類似格式

format(x, scientific=FALSE, width=12) 
[1] " 999999999999" 

的其他功能包括sprintf的,prettyNum和formatC。

簡而言之,不要嘗試做類型轉換。當您想要顯示您的結果時,只需使用其中一種功能。如果你真的想要進行類型轉換,那麼我建議你將數字轉換爲as.character() - 原因是我懷疑你不會對這些數字進行算術運算,所以它們本質上是字符串。

+0

謝謝您的信息! – 2011-03-28 19:27:26

相關問題