R语言第五次实训,dplyr 、tidyr和lubridate处理数据

2023-11-14

题目1:

1.数据处理【只用SY-20150401.csv】
将数据处理成每条数据处于一天中的第几个5分钟(说明: 00:00:01在第一个5分钟内, 00:10:13
在第三个5分钟内),由于一天可能多次乘坐地铁,根据卡号和进站时间,查询最近出站的时间,
作为本次出站时间。参考函数lubridate::hms, lubridate:: period_to_seconds。
处理的最终结果: dataframe(名称trade.metro.in.out )
字段 字段说明

提交的表格按照card.id排序。
Notebook中展示输出结果为
head(trade.metro.in.out,10)
并输出本地文件
shmetro_line_in_out.csv

解决:

读数据:

setwd("E://table")
library(data.table)
dt=fread('SY-20150401.csv')

重命名:

names(dt)<-c('card_id','date','time','station','vehicle','money','property')
dt

选取是地铁的数据

sy<-dt[dt$vehicle=='地铁',]
sy

将station分成2个字段line和station,利用‘号线’来分割;处理每5分钟一段,并按M5排序(化为秒÷300向上取整)

library(dplyr)
library(tidyr)
sy_split<-subset(sy,select = c(card_id,time,station,money),na.rm=TRUE)
sy_split<-separate(sy_split,'station',c('line','station'),'号线',remove=TRUE)
sy_split$M5<-ceiling((lubridate::period_to_seconds(lubridate::hms(sy_split$time)))/300)
sy_split<-sy_split[order(sy_split$M5)]
sy_split

统计进站数据

trade.metro.in <- subset(sy_split,money==0,select=-c(money))
names(trade.metro.in)<-c('card.id','time.in','line.in','station.in','M5.in')
trade.metro.in

统计出站数据

trade.metro.out<-sy_split[money>0]
names(trade.metro.out)<-c('card.id','time.out','line.out','station.out','money','M5.out')
trade.metro.out

根据card.id将5和6合并;并计算乘车时长;将乘车时长大于0的取出来

trade.metro.in.out<-merge(trade.metro.in,trade.metro.out,by=c('card.id'))
trade.metro.in.out$duration=lubridate::period_to_seconds(lubridate::hms(trade.metro.in.out$time.out))-lubridate::period_to_seconds(lubridate::hms(trade.metro.in.out$time.in))
trade.metro.in.out<-subset(trade.metro.in.out,duration>0)
trade.metro.in.out

通过card.id, M5.in来统计出某个card.id的最短的乘车时长
然后通过duration==duration_min,将最近出站时间,找出来
再将中间的统计量去掉,也可以dplyr中的管道%>%实现

trade.metro.in.out[,duration.min:=min(duration),by=.(card.id,M5.in)]
trade.metro.in.out
trade.metro.in.out<-subset(trade.metro.in.out,duration==duration.min,select = -c(duration.min))
trade.metro.in.out

按照card.id来排序,并展示前10条

trade.metro.in.out<-trade.metro.in.out[order(card.id),]
head(trade.metro.in.out,10)

将处理后的数据输出

write.csv(trade.metro.in.out,'shmetro_line_in_out.csv',row.names = FALSE)

利用1中的处理结果,按照station.in,station.out来分组,统计各组的数量
按照进出站的流量排序,取出前10个
展示前6个

cus_nums<-trade.metro.in.out[,.(cusnums=.N),by=.(station.in,station.out)]
cus_nums<-cus_nums[order(cusnums,decreasing = TRUE)]
cus_nums<-cus_nums[0:10,]
head(cus_nums,6)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

R语言第五次实训,dplyr 、tidyr和lubridate处理数据 的相关文章

  • 在R中绘制3x3方形网格

    我得到了一个数字列表 n 9 想将它们画在一个 3 3 的正方形网格中 每个网格填充相应的数字 我如何在 R 中执行此操作而不安装额外的软件包 例如情节 非常感谢 这里有一个ggplot解决方案比我预期的要难一点 Setup the dat
  • geom_密度匹配geom_histogram binwitdh

    我想在 ggplot2 中的分布条形图上添加一条线以显示平均分布 但遇到了麻烦 像这样的 ggplot 调用 ggplot x aes date received geom histogram aes y count binwidth 30
  • 为什么 rbind 会抛出警告

    这与是否有更优雅的方法将不规则的数据转换为整洁的数据框 https stackoverflow com questions 25102617 are there more elegant ways to transform ragged d
  • 如何在ggplot2中使用希腊符号?

    我的类别需要用希腊字母命名 我在用ggplot2 并且它与数据配合得很好 不幸的是 我无法弄清楚如何将这些希腊符号放在 x 轴上 在刻度线处 并使它们出现在图例中 有什么办法可以做到吗 更新 我看了一下link https github c
  • 自动将变量名称添加到列表的元素[重复]

    这个问题在这里已经有答案了 我有一个模型列表 为了使代码更易于维护 因此可以方便地添加和删除模型 我希望有一个地方来存储它们及其名称 为此 我必须解决以下命名问题 上游 我生成模型的方式比以下方式效率低 如果是这样压缩的 我会assign他
  • 创建后修改 ggplot 对象

    有没有首选的修改方式ggplot创建后的对象 例如 我建议我的学生将 r 对象与 pdf 文件一起保存以供以后更改 library ggplot2 graph lt ggplot mtcars aes x mpg y qsec fill c
  • 计算数据框中每一行的 R 条件运行总和

    我想创建一个等于 data Rating 的运行总和的列 假设第 3 列和第 4 列中有两个条件成立 特别是 data Year 换句话说 这应该计算直到上一年为止每个 id 的评分累积总和 它应该对数据框中的每一行 大约 50 000 行
  • 数据表中的 NA

    我有一个data table其中包含一些组 我对每个组进行操作 有些组返回数字 其他组返回NA 因为某些原因data table很难将所有东西重新组合在一起 这是一个错误还是我误解了 这是一个例子 dtb lt data table a 1
  • 如何将环境变量传递给shinyapps

    我想将安全参数传递给shinyapps io部署 以便我的应用程序可以通过以下方式获取它们 Sys getenv PASSWORD X 我找不到任何相关内容deployApp函数在rsconnect包裹 您可以使用Renviron网站 or
  • 当我用一个观察值运行回归时,为什么“fastLm()”会返回结果?

    为什么fastLm 当我用一项观察进行回归时返回结果吗 下面为什么不lm and fastLm 结果相等吗 library Rcpp library RcppArmadillo library data table set seed 1 D
  • 如何在r中进行左连接[重复]

    这个问题在这里已经有答案了 我有两个数据集一和二 数据集一 a b c 111 a 1 112 b 2 113 c 3 114 d 4 115 e 5 数据集二 e d g 222 ss 11 111 ff 22 113 ww 33 114
  • 删除绘图轴值

    我只是想知道是否有一种方法可以消除 r 图中的轴值 分别是 x 轴或 y 轴 我知道axes false将摆脱整个轴 但我只想摆脱编号 删除 x 轴或 y 轴上的编号 plot 1 10 xaxt n plot 1 10 yaxt n 如果
  • 在 R 中捕获段错误

    我得到了caught segfault每次我尝试从以下位置运行任何绘图函数时都会出错ggplot2包 1 0 0 我已经尝试过这个qplot geom dotplot geom histogram等来自包的数据 例如diamonds or
  • R 未获取用户库

    我有一个带 R 3 6 0 的 Fedora 30 系统 用户库设置在Renviron就像这个 R LIBS USER R LIBS USER R x86 64 redhat linux gnu library 3 6 事实上 它出现在交互
  • 使用 fread 导入数据后所有列均作为字符

    我导入了一个 CSV 文件 包含文本列和数字列 x lt fread myfile csv header TRUE verbose T na strings c null null 但导入后 当我运行summary x 时 所有列都被视为字
  • 读取多个 CSV 文件,并在文件开头跳过不同行数

    我必须阅读大约 300 个单独的 CSV 我已经成功使用循环和结构化 CSV 名称来自动化该过程 然而 每个 CSV 在开头都有 14 17 行垃圾 并且随机变化 因此在 read table 命令中硬编码 skip 参数将不起作用 每个
  • 如何在R中的2行之间交换多个值

    我有一个大小为 10x100 的矩阵 如何交换前 30 列中第 1 行和第 2 行之间的值 我们可以反转前两行的行索引以及通过采取序列创建的列索引rounded 30 总列数用于交换行中的值 colS lt seq round ncol m
  • 如何使用 R 或 PowerShell 从文本文件中提取数据?

    我有一个包含如下数据的文本文件 This is just text Username SOMETHI C Text Account DFAG Finish time 1 JAN 2011 00 31 58 91 Process ID 202
  • 递归累积函数

    我需要在 R 中编写一个累积求和函数 但我一直碰壁 该函数具有以下结构 a x1 a x2 a 2 x1 a x3 a 2 x2 a 3 x1 a x4 a 2 x3 a 3 x2 a 4 x1 等等 cumsum 似乎不适用于此类功能 有
  • 根据条件计算平均值

    下面是我的数据框 Row ID A B 1 0 0 2 0 0 3 0 0 4 0 1 5 0 1 6 0 1 7 62 75 0 8 100 0 9 100 0 10 100 1 11 100 1 12 100 1 13 100 1 14

随机推荐

  • opengles3.0 学习,顶点着色器(六)

    opengles3 0 学习 顶点着色器 六 顶点着色器输入包括 属性 用顶点数组提供的逐顶点数据 统一变量和统一变量缓冲区 顶点着色器使用的不变数据 采样器 代表顶点着色器使用的纹理的特殊统一变量类型 着色器程序 顶点着色器的源码 顶点着
  • 基于人脸的常见表情识别(3)——模型搭建、训练与测试

    基于人脸的常见表情识别 3 模型搭建 训练与测试 模型搭建与训练 1 数据接口准备 2 模型定义 3 模型训练 模型测试 本 Task 是 基于人脸的常见表情识别 训练营的第 3 课 如果你未学习前面的课程 请从 Task1 开始学习 本
  • 基于std::queue C++11 线程安全队列。

    网上看到的封装不错 记录一下 非原创 pragma once include
  • JAVA实现大文件多线程下载,提速30倍!(提供exe版)

    JAVA实现大文件多线程下载 提速30倍 前言 兄弟们看到这个标题可能会觉得是个标题党 为了解决疑虑 我们先来看下最终的测试结果 测试云盘下载的文件 46M 自己本地最大下载速度 2M 1 单线程下载 总耗时 603s 2 多线程下载 50
  • DDPMs扩散模型Pytorch代码实现附详细注释

    本文相当于是对The Annotated Diffusion Model的代码理解后加的注释 很详尽 具体有些公式图片不太好显示 在vx公众号 一蓑烟雨晴 回复 100 下载notebook版本的代码文件 import math from
  • 多目标跟踪笔迹十三:Learning by tracking Siamese CNN for robust target association

    1 Introduce 本文介绍了一种在行人跟踪背景下处理数据关联任务的新方法 引入了一种两阶段学习方案去匹配 检测对 首先 对 Siamese 卷积神经网络 CNN 进行了训练 以学习描述两个输入图像块之间的局部时空结构 聚合像素值和光流
  • 安装Ambari 2.7.5 + HDP3.1.5(附安装包)

    目录 前置准备 1 安装包准备 2 服务器配置 3 配置静态IP 4 配置主机名 5 关闭防火墙及selinux 6 配置ssh互信 7 安装pssh工具 非必须 8 配置ntp时钟同步 9 设置swap 10 关闭透明大页面 11 安装h
  • ubuntu创建自己的git远程仓库

    准备工作 先弄来一个服务器 可以先自行租赁一个服务器例如华为云 阿里云 腾讯云等等 这些服务器都可以哪个便宜就选择哪个吧 然后安装一个ubuntu的系统 这边我自用的是ubuntu系统 其他的系统没用搭建过 如果是Linux的系统大致都一样
  • 人工智能汇总---政策-应用--技术

    2017 8 2018 6月 那些脑袋迷糊的日子 不知啥是人工智能 接下来一步一步去了解 从大政策 到媒体 企业 学校 自己动手 逐步对人工智能有个初步的了解 下面对精华网址汇总 供有共同爱好的学习 讨论群 366244662 2017 8
  • VASP输入INCAR文件

    欢迎来到我的博客 坚持比努力重要 文章目录 欢迎来到我的博客 坚持比努力重要 目录 VASP输入INCAR文件 初始I O设置 读入 读出 Electronic Relaxation 电子步 Ionic Relaxation 离子步 Pol
  • Arduino使用Esp32-cam开发版

    首先你需要先准备一些硬件 1 Esp32 Cam开发版 2 TY OV2640 v2 0摄像头 3 烧录底座 可以用USB TTL 我用的是Esp8266的烧录底座 4 杜邦线母线x5 颜色不做要求 开始填坑 贴个大佬的玩法 如果你在开发版
  • 获取outputstream大小_java从输入流中获取数据并返回字节数组示例

    代码如下 import java io ByteArrayOutputStream import java io InputStream 从输入流中获取数据并以字节数组返回 public class StreamTool 从输入流获取数据
  • 神州网信政府版win10远程

    今天去客户公司部署系统 本来想着开好远程后马上回来远程操作 哪知道客户服务器安装的是 神州网信政府版win10远程 遇到一堆问题 处理了半天 记录下 1 参考 Windows10神州网信版的远程桌面开启 神州网信 远程桌面 dawn的博客
  • Using the SG3525 PWM Controller - Explanation and Example: Circuit Diagram / Schematic of Push-Pull

    5 Using the SG3525 PWM Controller Explanation and Example Circuit Diagram Schematic of Push Pull Converter PWM is used i
  • 【前端】Vue项目:旅游App-(1)搭建项目、重置css、配置router和store(pinia)

    文章目录 创建项目 搭建和配置项目 项目目录结构划分 重置CSS normalize css reset css 目录结构 配置router 对应页面组件 index js 配置store 创建项目 npm init vue latest
  • Markdown 公式编号及引用

    举一个简单的例子 前提条件是使用 mathjax 作为 LaTeX 渲染工具 Suppose we solve equations mathcal L U F tag 1 label eq1 In the equation eqref eq
  • Qt框架概述

    Qt框架概述 一 什么是Qt 二 了解QtCreator 三 创建Qt项目 Qt项目框架及文件介绍 四 设置窗口属性 五 按钮 创建按钮方式一 按钮属性设置 创建按钮方式二 六 对象模型 一 什么是Qt 概念 Qt是一个基于C 的 跨平台的
  • [指针八]有关指针的面试题

    有关指针的经典面试题 C语言为何如此长寿并实用 C 为什么有那么多精彩 指针可以说是C C 中的灵魂所在 虽然早期中pascal也有指针 但是和C C 比起来不是一个级别的 今天为大家深入浅出的解析一下指针的有关笔试 面试题 所有题目来源网
  • 十三、Redis——最佳实践(Redis时参考的经验总结)

    目录 1 Redis健值设计 1 1 优雅的key结构 1 2 拒绝BigKey 1 2 1 BigKey的危害 1 2 2 如何发现BigKey 1 2 3 如何删除BigKey 1 3 恰当的数据类型 编辑 总结 2 批处理优化 2 1
  • R语言第五次实训,dplyr 、tidyr和lubridate处理数据

    题目1 1 数据处理 只用SY 20150401 csv 将数据处理成每条数据处于一天中的第几个5分钟 说明 00 00 01在第一个5分钟内 00 10 13 在第三个5分钟内 由于一天可能多次乘坐地铁 根据卡号和进站时间 查询最近出站的