42

このサイトにも同様の質問があることは承知していますが、どれも私の質問に十分に答えていないようです。

これは私がこれまでに行ったことです:

Excelで開いたcsvファイルがあります。列を代数的に操作して、新しい列「A」を取得します。を使用してファイルをRにインポートしread.csv()、列Aのエントリを要素として保存します。数値として保存する必要があります。私はこのトピックに関する質問を見つけました:

csvデータセットをRにインポートしましたが、値が係数になります

アドバイスに従って、私はstringsAsFactors = FALSE引数としてを含めますがread.csv()、Hong Ooiが上記のリンク先のページで提案したように、これによって列Aのエントリが数値として格納されることはありません。

考えられる解決策は、次のページに記載されているアドバイスを使用することです。

情報を失うことなく係数を整数\数値に変換するにはどうすればよいですか?

ただし、よりクリーンなソリューション、つまり、列エントリのエントリが数値として格納されるようにファイルをインポートする方法が必要です。

助けてくれてありがとう!

4

6 に答える 6

38

新しい列を作成するために Excel で行っている代数は、おそらく R でより効果的に行うことができます。

次のことを試してください: を使用してファイルを (Excel 操作の前に) R に読み込みますread.csv(... stringsAsFactors=FALSE)。[それでもうまくいかない場合は、?read.table(read.csv折り返し) をご覧ください。ただし、他に根本的な問題がある可能性があります]。

例えば:

   delim = ","  # or is it "\t" ?
   dec = "."    # or is it "," ?
   myDataFrame <- read.csv("path/to/file.csv", header=TRUE, sep=delim, dec=dec, stringsAsFactors=FALSE)

次に、数値列が列4であるとしましょう

   myDataFrame[, 4]  <- as.numeric(myDataFrame[, 4])  # you can also refer to the column by "itsName"


最後に、Excel で行ったのと同じタスクを R で達成するために何か助けが必要な場合は、喜んで手伝ってくれる人がたくさんいます。

于 2012-12-04T15:53:54.823 に答える
13

read.table(およびその関連) では、欠損値として解釈される文字列を指定する引数na.stringsですNA。デフォルト値はna.strings = "NA"

NA数値変数列の欠落値が、 " ." や " " など、 " " 以外のものとしてコード化されている場合N/A、これらの行は として解釈されcharacter、列全体が に変換されcharacterます。

したがって、欠損値が " NA" 以外の場合は、 で指定する必要がありますna.strings

于 2014-06-05T15:02:34.923 に答える