1

州の教育用AccessデータベースからRのデータフレームにデータを読み込もうとしています。データベースは州内の学校に関する情報を提供し、各学校には12桁の識別番号があります。テーブルをロードすると

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

これは、この数値を科学的記数法のように見えるものに変換します(ここで内部の仕組みを十分に把握していないことをお詫びします)。を使用してデータベースにあったように整数に変換しようとすると

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

オリジナルと一致しないNAと整数の束を取得します。

使用すべき別のデータ型はありますか?元のintを復元する方法、または最初からインポートする方法はありますか?

手伝ってくれてどうもありがとう!

4

1 に答える 1

1

問題は、整数値が2 * 10 ^ 9までの数値(つまり、最大9桁の長さ)しか処理できないことです。学校のID番号は12桁の長さであるため、クラスが数値または2倍である必要があります。

ただし、番号はRによって正しく処理されるため、これはすべて無関係です。

この番号の表示に問題があるようです。選択肢はたくさんあります。ここにいくつかあります:

数字を文字列として表示します。

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

いずれかの文字列フォーマット関数を使用して、フォーマットを指定します。これにより、値が文字として表示されるように変換されますが、フォーマットの柔軟性が得られます。たとえば、次の形式を使用します。

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

同様のフォーマットを実行する他の関数には、sprintf、prettyNum、formatCなどがあります。

一言で言えば、型変換を試みてはいけません。結果を表示したい場合は、これらの関数の1つを使用するだけです。本当に型変換を行いたい場合は、数値をas.character()に変換することをお勧めします。理由は、これらの数値に対して算術演算を行うことはないと思われるため、本質的に文字列です。

于 2011-03-28T18:26:08.030 に答える