2017-09-24 3 views
0

csvファイルを使用して作成されたデータフレームがあります。生徒の現在の年齢を計算する簡単な作業です。私はbirthyearと呼ばれるフィールドを持っています。数人の学生の間にフィールドにはNULL値があります。私は以下のコードを実行しています:違いを実行中に無効な結果が発生する

df <- read.csv("students.csv", header = TRUE) 
df$age <- (2017-as.numeric(df$birthyear)) 

私は正しい年齢を得ていません。むしろ、フィールドdf$birthyearと同じ結果が得られます。 as.numeric(df$birthyear)を実行しているとき、私は1994年、1995年、1988年などの年を取ることを期待していますが、私は以下を取得しています

1994年、私は53を得ています 1980年、

なぜ私は年を得るべきであるかこれらの整数値を得ているのか理解できません。

答えて

0

出生年が文字列としてインポートされ、自動的に要因に変換されているように見えます。 as.numericに電話すると、ラベルではなくレベルコードが返されます。 stringsAsFactorsFALSEに設定してデータをインポートしてみてください。

df <- read.csv("students.csv", stringsAsFactors=FALSE) 
関連する問題