尝试格式化变量时strptime()错误消息

时间:2017-10-25 18:55:55

标签: r

我有一个带有一些日期变量的数据框。我自己没有创建日期变量,它们是我读入的csv文件。日期是%d /%m /%Y“格式,默认情况下读作因子。

我想使用这些日期变量来计算一些时间跨度,因此希望能够将它们传递给lubridate()。

问题是,当我尝试运行一些代码来格式化日期变量时,我收到一条我不明白的错误消息。任何帮助将非常感激。

当前代码:

df$Var1 <- strptime(as.character(df$Var1), "%d/%m/%Y")

错误讯息:

Error in `$<-.data.frame`(`*tmp*`, "Var", value = list(sec = numeric(0),  : 
  replacement has 0 rows, data has 10387

1 个答案:

答案 0 :(得分:0)

您的问题是,您尝试分配的数据框中没有行转换Var1列。以下是重现错误的示例。

mtcars_df = data.frame(mtcars)
df = data.frame(Var1=factor())
mtcars_df$Y =  strptime(as.character(df$Var1), "%d/%m/%Y")

验证您是否在as.character(df $ Var1)中引用了正确的data.frame,也许您打算将其作为WhiteComplete$Var1