2017-09-24 22 views
0

我有使用csv文件創建的數據框。它是計算學生當前年齡的簡單任務。我有一個名爲birthyear的字段。該字段對於少數學生而言具有NULL值。我正在運行以下代碼:在執行R中的差異時出現無效結果

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年,我得到39等。

無法理解爲什麼我得到這些整數值,我應該得到一年。

回答

0

看起來像出生年份被導入爲字符串,然後自動轉換爲因素。當您致電as.numeric時,它將返回等級代碼而不是標籤。嘗試使用設置爲FALSEstringsAsFactors導入數據。

df <- read.csv("students.csv", stringsAsFactors=FALSE)