r - 按行使用日期:从数据框中获取日期行(“POSIXct”)而不丢失类
问题描述
我有一个名为 df 的数据框,其中所有列都属于“POSIXct”类。像那样:
df
X1 X2
1 2000-01-01 00:00:00 2000-01-01 00:00:03
2 2000-01-01 00:00:01 2000-01-01 00:00:04
3 2000-01-01 00:00:02 2000-01-01 00:00:05
我想通过逐行提取值将所有值作为一个“POSIXct”向量。所以这是我的预期输出:
vec <- magicfunction(df)
vec
2000-01-01 00:00:00 2000-01-01 00:00:03 2000-01-01 00:00:01 2000-01-01 00:00:04 2000-01-01 00:00:02 2000-01-01 00:00:05
不幸的是,do.call("c", df)按列工作。有一个关于如何按行取消列出建议使用 t() 但使用 t() 函数将数据帧转换为矩阵的问题,该矩阵也不适用于日期。此外, apply(df, 1, function(x) ...) 按行处理数据帧,但 apply() 也会更改日期。另一方面, lapply() 与日期一起使用,但它是按列工作的。
这是我在示例中使用的数据:
library(lubridate)
k <- 2
vec <- seq(ymd_hms("2000-01-01 00:00:00"),
ymd_hms("2000-01-01 00:00:5"),
by = 1)
df <- as.data.frame(split(vec, f = as.factor(rep(1:k, each = length(vec)/k))))
解决方案
正如我在评论中提到的,您可以在每一行重复使用副本中的答案:
df1 <- split(df,1:nrow(df))
do.call("c",lapply(df1,function(x) do.call("c",x)))
请注意,副本和我的评论都没有暗示do.call("c",df)
整个数据框,因此这不起作用也就不足为奇了。
推荐阅读
- amazon-web-services - 我的 AWS EC2 网站上出现 502 Bad Gateway 错误
- javascript - 无法使用条带 PaymentIntent 中的 fetch API 获取 Payment_method_id
- javascript - 如何使用角材料在具有可扩展行的表中创建嵌套垫表
- spring - 如何从 Spring Batch itemwritter 调用过程,我需要从过程中捕获输出参数数据以调用另一个过程
- javascript - 网站在 PC 上显示为部分文本和部分 html
- javascript - 发送消息程序
- react-admin - 尝试添加下一个按钮
的 滚动选项卡 - java - 如何在适配器内的视图中膨胀图像
- javascript - 有没有办法将静态和动态路由设置到同一个地方?
- r - summaryBy 和很多变量