R

时间:2017-09-24 23:10:32

标签: r

我有一个使用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年,我得到39岁等等。

无法理解为什么我得到这些整数值,我应该得到年份。

1 个答案:

答案 0 :(得分:0)

看起来将出生年份作为字符串导入,然后自动转换为因子。当您致电as.numeric时,它会返回级别代码而不是标签。尝试将stringsAsFactors设置为FALSE来导入数据。

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