r - 如何在 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
我也搜索过此错误消息,但我发现的示例都涉及将数字转换为日期。我无法在我的上下文中找到任何示例。
初始化日期列的正确方法是什么,以便我可以像上面那样向它添加格式化的日期?
谢谢!
解决方案
这个问题更可能是由于串联,因为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
推荐阅读
- arrays - 为什么将 r 值分配给数组下标内的变量
- svelte - UnhandledPromiseRejectionWarning:错误:找不到模块'svelte/compiler'
- ios - ios移动应用程序中的安全漏洞问题
- asp.net - 配置文件和参考:加载了哪一个?
- c++ - 存储 QList
在 QVariant 中 - iot - 无法使用 wakaama 客户端连接 LWM2M
- javascript - 如何创建 s 按钮,即使我向下滚动页面也应该保持可见?
- javascript - 如何在 Microsoft Edge 中获取选定单选按钮的值?
- spring-security - Google OAuth2 的增量授权使用 Spring Security 登录
- linux - 用于压缩文件并使用邮件发送 zip 的脚本