首页 > 解决方案 > 如何在 R 中使用日期列 * 初始化一个空数据框?

问题描述

如何在 R 中使用日期列初始化空数据框?

我已经尝试了很多事情,但是当我尝试在正确的列中附加带有日期的行时,它们都会生成错误消息。例如:

> test <- data.frame(date=as.Date(character()), var1 = as.numeric(), var2 = as.numeric())
> str(test)
'data.frame':   0 obs. of  3 variables:
 $ date: 'Date' num(0) 
 $ var1: num 
 $ var2: num 
> test <- rbind(test, c(as.Date("2020-01-01"), 123, 456))
Error in as.Date.numeric(e) : 'origin' must be supplied

将第一列初始化为整数,然后将“日期”类添加到它会产生相同的错误:

> test <- data.frame(date=integer(0), var1=as.numeric(), var2=as.numeric())
> str(test)
'data.frame':   0 obs. of  3 variables:
 $ date: int 
 $ var1: num 
 $ var2: num 
> class(test$date) <- "Date"
> str(test)
'data.frame':   0 obs. of  3 variables:
 $ date: 'Date' int(0) 
 $ var1: num 
 $ var2: num 
> test <- rbind(test, c(as.Date("2020-01-01"), 123, 456))
Error in as.Date.numeric(e) : 'origin' must be supplied

我也搜索过此错误消息,但我发现的示例都涉及将数字转换为日期。我无法在我的上下文中找到任何示例。

初始化日期列的正确方法是什么,以便我可以像上面那样向它添加格式化的日期?

谢谢!

标签: rdataframedate

解决方案


这个问题更可能是由于串联,因为vector不能有多个class. 我们可以通过一个data.frame

rbind(test, setNames(data.frame(as.Date("2020-01-01"), 123, 456), 
        names(test)))

-输出

        date var1 var2
1 2020-01-01  123  456

推荐阅读