r - R函数根据单独数据框中的条件填充数据框
问题描述
我有一个空白数据框“DF1”,如下所示:
地点 | 2021-01-01 00:00:00 | 2021-01-01 03:00:00 | 2021-01-01 06:00:00 | 2021-01-01 09:00:00 |
---|---|---|---|---|
BMA | 不适用 | 不适用 | 不适用 | 不适用 |
BMC | 不适用 | 不适用 | 不适用 | 不适用 |
马华 | 不适用 | 不适用 | 不适用 | 不适用 |
中冶 | 不适用 | 不适用 | 不适用 | 不适用 |
我有一个部分数据框“DF2”,如下所示:
图像日期 | 站点名称 |
---|---|
2021-01-01 02:53:00 | BMA |
2021-01-01 08:44:00 | 中冶 |
2021-01-01 05:22:00 | BMC |
如何查询 DF2,以便当“ImageDate”中的数据点落入 DF1 的列标题(时隙)之一时,将数字“1”放置在 DF1 的相应/匹配“站点”中?如果在某个站点的特定列(时隙)中没有找到数据,则该单元格将获得“0”,因此它将产生以下数据框:
地点 | 2021-01-01 00:00:00 | 2021-01-01 03:00:00 | 2021-01-01 06:00:00 | 2021-01-01 09:00:00 |
---|---|---|---|---|
BMA | 1 | 0 | 0 | 0 |
BMC | 0 | 1 | 0 | 0 |
马华 | 0 | 0 | 0 | 0 |
中冶 | 0 | 0 | 1 | 0 |
谢谢!
解决方案
与其创建一个空白df1
并填充它,您可以df2
以一种提供我们想要的结构的方式进行转换。
你可以试试 -
library(dplyr)
library(tidyr)
library(lubridate)
df2 %>%
mutate(ImageDate = floor_date(ymd_hms(ImageDate), '3 hours')) %>%
pivot_wider(names_from = ImageDate, values_from = ImageDate,
values_fn = length,values_fill = 0)
推荐阅读
- javascript - Javascript 日期输入明天无法正确显示
- r - 我的引导和回归代码中的 R 错误消息
- flutter - 如何将更新的数据发送到已经在颤振中调用的小部件?
- api - Xamarin iOS Native - Google Maps Api 安全性
- python - jupyter notebook 上的 FileNotFoundError(在 IBM Watson 工作室)
- java - Java:类类型不匹配
- vue.js - 如何在 Vue Lifecycle 中检测组件的哪些数据已更新?
- r - 如何将数据框转换为所需的结构和形式?
- python - 在 PyCharm docker Interpreter 选项卡中丢失
- java - 数据绑定 - 找不到 BR 类