r - 如何在 R 中按日期合并/堆叠观察结果
问题描述
我有一个像
date X1 X2 X3
4/16/2019 0:00 1 2 3
4/16/2019 7:00 1 2 3
4/172019 0:00 1 2 3
4/17/2019 7:00 1 2 3
我想得到
date time X1 X2 X3
4/16/2019 c(0,7) c(1,1) c(2,2) c(3,3)
4/17/2019 c(0,7) c(1,1) c(2,2) c(3,3)
其中X1
是一个列表,X1[[1]]
是一个向量,即c(1,1)
。
有没有一种有效的方法来实现这一目标?谢谢!
解决方案
在空格 ( ) 处将“日期”拆分为“日期”、“时间”列\\s+
,按“日期”分组,然后将summarise
across
所有列包装在一个list
library(dplyr)
library(tidyr)
library(stringr)
df1 %>%
separate(date, into = c('date', 'time'), sep = '\\s+') %>%
mutate(time = as.numeric(str_replace(time, ":", ".")) %>%
group_by(date) %>%
summarise(across(everything(), ~ list(.)))
-输出
# A tibble: 2 × 5
date time X1 X2 X3
<chr> <list> <list> <list> <list>
1 4/16/2019 <dbl [2]> <int [2]> <int [2]> <int [2]>
2 4/17/2019 <dbl [2]> <int [2]> <int [2]> <int [2]>
数据
df1 <- structure(list(date = c("4/16/2019 0:00", "4/16/2019 7:00",
"4/17/2019 0:00",
"4/17/2019 7:00"), X1 = c(1L, 1L, 1L, 1L), X2 = c(2L, 2L, 2L,
2L), X3 = c(3L, 3L, 3L, 3L)),
class = "data.frame", row.names = c(NA,
-4L))
推荐阅读
- ruby-on-rails - 使用 rails 控制台和 Apartment (Rails Multitenancy) 选择模型数据
- python - 无法创建 instagram 脚本来取消关注我通过 selenium/python 关注的人
- c# - 惊喜:MethodInfor 调用比直接调用更快?
- sql-server - 在动态 sql 中处理单引号的正确方法?
- mysql - 如何计算分组?
- python - 混合浮点数和字符串的不一致 dtype 推断
- r - 计算投资组合超额收益指数 g 的算法,每个不同的投资比例 x 在 r
- spring-integration - IntegrationFlow Amqp 通道适配器在句柄()中不起作用
- sql - 我的 SQL 语句中有一个保留字
- powershell - Azure Devops yaml 构建定义 PowerShell 内联语法问题