2016-05-03 1 views
3

かなり簡単な質問(私は思う)。私は人々に "e"キーまたは "i"キーを押して応答する実験から、.csvファイルをRにインポートしようとしています。テストでは、 "i"キーだけで応答したので、データセットの応答変数は基本的に "i"のリスト(引用符は含みません)です。データをRにインポートしようとすると、R:R:read.csv手紙をiとしてNAをインポートする

noload=read.csv("~/Desktop/eprime check no load.csv", na.strings = "") 

すべてが応答変数になります。私がすべての "e"、または "e"と "i"を混ぜて試してみると、うまくいきます。

RはNAとして扱う文字iについては何ですか(n.b. na.strings = ""部分がなくてもこれを行います)?

ご協力いただきありがとうございます。

+0

列が正しく識別されましたか?データのサンプルを投稿できますか? – Molx

+1

Strange ...確かに 'read.csv(text =" i、i、i、i \ ni、i、i、i \ ni、i、i、i "、ヘッダー= FALSE)'すべて 'NA'ですが、 'read.csv(text =" e、e、e、e \ ne、e、e、e \ ne、e、e、e "、header = FALSE、na.strings =" ")'うまく動作します。すべてが 'i'である列が' NA'に設定されているようです。 – MichaelChirico

+2

Odd。回避策として、 'readr :: read_csv'または' data.table :: fread'を使用することができます。 – alistaire

答えて

6

Rに列のデータ型を指定せずに表を読み取るように指示すると、データ型を「推測」しようとします。この場合、データ型の「複雑」を推測します。あなたが内容

Var 
i 
i 
i 

datafile.csvを持っていたあなたが行う場合たとえば、:

df = read.csv("datafile.csv", header = TRUE, na.strings = "") 
class(df$Var) 

あなたは

[1] "complex" 

Rpurely imaginary valueとして私を解釈し得るでしょう。

df = read.csv("datafile.csv", header = TRUE, na.strings = "", colClass = "factor") 

またはあなたが好きでfactorを置き換えます。これを修正するには、単にそのようなcolClassとデータ型を指定します。通常はこのようにデータ型を指定することをお勧めします。後で混乱するエラーに遭遇することはありません。

+1

実際に 'dput(read.csv(text =" V1、V2、V3、V4 \ ni、i、i、i \ ni、i、i、i \ ni、i、i、i)) ' 。しかし、なぜそれが '0 + 1i'を表示していないのですか?なぜ「私」が「NA」であると仮定していますか?私は 'as.complex(" i ")'がNA_complex_'であり、 'as.complex(i)'も間違っている( '300 + 0i)')... – MichaelChirico

+7

これは最新のRリリース(v 3.3.0)で修正されました。 [here](https://stat.ethz.ch/pipermail/r-announce/2016/000602.html)を参照してください。 –

+0

@DavidArenburgは3.3が出ていることに気付かなかった、ありがとう! – MichaelChirico