0

私は "R" に不慣れで、まだ基礎を学んでいます..

ある状況では、web サイトから人口データを xls 形式で取得しました。(gdataパッケージのread.xlsを使用して)それを読み取ろうとすると、データはR(データフレーム)に入っています。ただし、すべてがキャラクターであり、これまでのところ問題ありません。

不要な行や列などをクレンジングした後、数値(文字として存在する)を数値に変換しようとしていますが、奇妙な動作に直面しています...

私のデータ要素は次のようになります(サンプルはこちら)

> class(males1)
[1] "factor"

> males1[1]
[1] 6,665,561

males1 には n 行が含まれ、各行に 1 つの要素 (州ごとの男性の数) が含まれていると想定されています。値に as.numeric を適用すると、実際には数字の合計が返されます

> as.numeric(males1[1])
[1] 35

males1 をベクトルに変換すると、別のエラーが返されます

> vv=as.vector(males1)
> vv[1]
[1] "6,665,561"
> as.numeric(vv[1])
[1] NA
Warning message:
NAs introduced by coercion 

私は確かに、本当に基本的な何かが欠けています..

助けてください...

4

1 に答える 1

1

csv小数の代わりにコンマが含まれているか、大きな数字が区切られていると思いますか?

コンマのために:

> males1[1]
[1] 6,665,561 # is this meant to be 6665561 ?

要因です。as.numeric因子にすると数字が得られますが、それはレベルの順序での因子の番号にすぎません。

   x <- c("a","b","c")
   x <- as.factor(x)
   as.numeric(x)
   #[1] 1 2 3

それらを削除したり、read.csvで?gsub使用したりすることは可能ですか?dec="."

于 2013-02-07T19:43:39.287 に答える