我有一个带有一些日期变量的数据框。我自己没有创建日期变量,它们是我读入的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
答案 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
?