r - 如何根据另一列找到最小值和最大值?
问题描述
我的输入表如下所示,
+------+------------------+
| Name | Datetime |
+------+------------------+
| ABC | 26-01-2019 4:55 |
| ABC | 26-01-2019 4:35 |
| ABC | 26-01-2019 5:00 |
| XYZ | 26-01-2019 2:50 |
| XYZ | 26-01-2019 4:00 |
| XYZ | 26-01-2019 4:59 |
+------+------------------+
从上表中,我想根据“名称”找到“日期时间”的最小值和最大值,同时在“数据时间”信息之间拒绝,如果该人提前或迟到使用 R Studio 被录取,则自动创建另一列,如下所示,
+------+------------------+--------+
| Name | Datetime | Col3 |
+------+------------------+--------+
| ABC | 26-01-2019 4:35 | Early |
| ABC | 26-01-2019 5:00 | Late |
| XYZ | 26-01-2019 2:50 | Early |
| XYZ | 26-01-2019 4:59 | Late |
+------+------------------+--------+
先感谢您。
解决方案
这是一个基本的 R 选项,
transform(stack(data.frame(
do.call(cbind,
tapply(as.POSIXct(dd$Datetime, format = '%d-%m-%Y %H:%M'), dd$Name, function(i)
as.character(c(min(i), max(i))))), stringsAsFactors = FALSE)),
col3 = c('Early', 'Late'))
# values ind col3
#1 2019-01-26 04:35:00 ABC Early
#2 2019-01-26 05:00:00 ABC Late
#3 2019-01-26 02:50:00 XYZ Early
#4 2019-01-26 04:59:00 XYZ Late
推荐阅读
- assimp - 使用 assimp_cmd 转储 fbx 模型文件并渲染
- c# - C# FFmpeg 位图帧到图片框
- tcl - 如何使用 Tcl 创建和重定向除 stdin/stdout/stderr 以外的文件描述符?
- .net-core - 从 Azure ServiceBus 中的订阅/主题读取现有消息
- laravel-5 - Laravel 5.7 在本地主机上给出错误 500
- javascript - 'lightercollective' 不是内部或外部命令、可运行程序或批处理文件
- java - 如何在 JavaFX 应用程序中将文本设置为键盘按键上的标签?
- spring-boot - 如何使用二进制文件修复springboot gradle:processResources
- android - 无法在 Google Play 管理中心更新应用内产品
- python - py2exe 在导入熊猫时始终失败