按年份分割数据

2024-03-04

我有这样的数据:

ID    ATTRIBUTE        START          END
 1            A   01-01-2000   15-03-2010
 1            B   05-11-2001   06-02-2002
 2            B   01-02-2002   08-05-2008
 2            B   01-06-2008   01-07-2008

我现在想统计每年具有特定属性的不同ID的数量。

结果可能如下所示:

YEAR    count(A)    count(B)
2000          1           0
2001          1           1
2002          1           2
2003          1           1
2004          1           1
2005          1           1
2006          1           1
2007          1           1
2008          1           1
2009          1           0
2010          1           0

计算出现次数的第二步可能很简单。

但我如何将数据分成年份呢?

先感谢您!


这是一种使用 Hadley 的一些软件包的方法。

library(lubridate); library(reshape2); library(plyr)

# extract years from start and end dates after converting them to date
dfr2 = transform(dfr, START = year(dmy(START)), END = year(dmy(END)))

# for every row, construct a sequence of years from start to end
dfr2 = adply(dfr2, 1, transform, YEAR = START:END)

# create pivot table of year vs. attribute with number of unique values of ID
dcast(dfr2, YEAR ~ ATTRIBUTE, function(x) length(unique(x)), value_var = 'ID')

编辑:如果原来的data.frame很大,那么adply可能需要很多时间。在这种情况下,一个有用的替代方法是使用data.table包裹。这是我们如何替换adply呼叫使用data.table.

require(data.table)
dfr2 = data.table(dfr2)[,list(YEAR = START:END),'ID, ATTRIBUTE']
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

按年份分割数据 的相关文章

  • R 因子变量之间的相关性

    我想知道是否有一种简单的方法来识别与另一个变量 100 相关的特征 因子变量 因此 在示例中 该过程将匹配 颜色 和 车辆 以及 植物 和 高度 color lt c black black blue blue yellow vehicle
  • 在 R 中提取模式/分隔符之间的字符串

    我的变量名称格式如下 PP Sample 12 GT or PP Sample 17 GT 我正在尝试使用字符串拆分来 grep 出中间部分 即Sample 12 or Sample 17 但是 当我这样做时 IDtmp lt sapply
  • 在for循环中重命名ggplot2图

    我有一个关于在 for 循环中创建 ggplot2 图表 根据迭代重命名它们 然后在网格中排列图表的问题 我想做类似这个虚拟示例的事情 library ggplot2 a c 1 2 3 b c 4 5 6 for i in c 1 5 x
  • 修改 GGplot2 对象

    然而 我很好奇 是否可以添加任何特定的图例或将哪个物种对应于观察到的预期绘图中 以分别知道它是哪个圆圈 我目前使用的是一个名为 finches 的假数据集 该包称为 cooccurr 它创建一个 ggplot 对象 我很好奇如何实际编辑它以
  • 在 Ubuntu 上安装软件包需要很长时间

    我之前使用 Windows 作为操作系统 RStudio 用于 Windows 今天切换到 Ubuntu 并再次安装了 R 和 RStudio 当我尝试从 CRAN 安装一些软件包时 仅tidyverse 使用install package
  • sapply 函数从命名向量中的值填充数据帧的列,需要很长时间。有更快的方法吗?

    这是我正在做的一个例子 x lt c a 2 b 4 c 2 d 9 df lt data frame names c d c a b x是一个命名向量 其值的顺序与它们在中出现的顺序不同df names 我需要在数据框中形成一个新列 该列
  • 在ggplot2中添加边框或背景以缩放图例guide_colorbar

    我在 ggplot 图中有一个从白色到红色的颜色条 并且白色边框在白色背景上不太明显 有没有办法对图例中的刻度线进行不同的着色或在渐变比例周围添加边框 这是一个最小的例子 df lt data frame x lt rnorm 10 y l
  • dplyr 标准评估:summarise_ 以及求和变量的变量名称

    我遇到了很多与我的问题类似的问题 但只解决了我问题的一部分 我使用带有标准评估的 dplyr 来容纳变量名称 这对于管道中的 filter 和 group by 效果很好 但是 为了总结 我无法为我正在求和的指标提供变量名称 一个例子就可以
  • 如何选择独特点

    我是一名 R 程序员新手 我有以下一系列观点 df lt data frame x c 1 2 3 4 y c 6 3 7 5 df lt df gt mutate k 1 df lt df gt full join df by k df
  • 在 R 中使用 randomforest() 进行分类?

    我最初有一个由 N 行 12 列组成的数据框 最后一列是我的班级 0 或 1 我必须将整个数据框转换为数字 training lt sapply training temp as numeric 但后来我认为我需要将类列作为因子列来使用 r
  • r : 直方图上的 ECDF

    在 R 中 与ecdf我可以绘制经验累积分布函数 plot ecdf mydata 与hist我可以绘制数据的直方图 hist mydata 如何在同一图中绘制直方图和 ecdf EDIT 我尝试做类似的东西 https mathemati
  • R:变换不规则时间字符串

    我有两个不同的时间序列 来自不同的数据帧 具有不同的不规则格式 但问题是相同的 我只想提取小时 分钟 秒和毫秒 时代系列看起来像这样 ts1 08 27 23 445 08 27 24 280 08 27 25 115 I tried st
  • R:错误消息---包错误:“functionName”未从当前命名空间解析

    我正在使用一个一直运行到 R3 0 的软件包 问题如上所述 当我们调用在 R 2 15 2 中工作的函数时 从 R 3 0 开始我们得到一个错误 Error in C solarspectrum3 as double lon as doub
  • 来自 data.frame 每一列的随机样本

    我想从 a 的每一行中抽取随机样本data frame独立于其他行 这是一个例子 此代码为每行选择相同的列 但我需要为每行独立选择列 library plyr set seed 12345 df1 lt mdply data frame m
  • profvis() 何时以及为何显示“源不可用”?

    我经常分析 R 代码 并大量使用 profvis 对于某些函数 浏览器窗口的上半部分会显示源代码 有时则不会 我不知道什么时候会出现这种情况 对我来说这似乎是随机的 有谁知道 profvis 何时以及为什么无法在顶部窗口中显示代码 发生这种
  • 使用 ggplotly(ggplot2 withplotly)时可以去掉注释中的跟踪标签吗?

    使用ggplotly时是否可以删除注释中的跟踪标签 例如 library ggplot2 library plotly g lt ggplot iris aes Sepal Width Sepal Length geom point ann
  • 仅在具有重复块名称的另一个 Rmarkdown 文档中运行一个 Rmarkdown 文档中的代码

    我正在 Rmarkdown 中编写一系列相互补充的报告 我想将上一份报告的结果纳入我目前正在编写的报告中 我看到其他建议使用的问题purl从 Rmarkdown 文档中提取 R 代码然后运行它 所以我尝试了以下操作 r read previ
  • 如何判断某个软件包是否已经安装?

    当我安装 yaml 包时 如果之前已经安装过 RStudio 则会弹出一条烦人的错误消息 如何判断该软件包是否已安装 以便我可以在代码中决定是否安装该软件包 该消息位于弹出窗口中 内容如下 此安装将更新的一个或多个软件包 当前已加载 在更新
  • 如何用日语创建 ggplot2 标题?

    我正在准备日语演示文稿 并希望图像的标题和图例名称为日语 我可以让文本在 RStudio 中渲染得很好 但是当渲染图像时 日语字符仅显示为方框 x 10 10 y x x df data frame x y ggplot df aes x
  • DataFrame 对象没有属性“sort_values”

    dataset pd read csv dataset csv fillna 100 dataset Id 0 dataset i 0 dataset j 0 entries dataset dataset Id 0 print type

随机推荐

  • LINQ to SQL 与 ADO.Net

    LINQ to SQL 和 ADO net 之间有什么区别 ADO NET 是 NET Framework 的底层数据访问 API 很像 Java 中的 JDBC 它自 NET 第一个版本发布以来就已存在 LINQ to SQL 是一个基于
  • 连续 2d 切片上的 Numpy 向量化函数

    我有一个 3D numpy 数组 我想通过在沿轴的连续 2d 切片上执行函数并将生成的切片堆叠在一起来形成一个新的 3d 数组 显然有很多方法可以做到这一点 我想以最简洁的方式做到这一点 我认为这是可能的numpy vectorize 但这
  • 查找两个 C# 对象之间的属性差异

    我正在开发的项目需要在用户更改电子邮件 帐单地址等时进行一些简单的审核日志记录 我们正在使用的对象来自不同的来源 一个是 WCF 服务 另一个是 Web 服务 我已经使用反射实现了以下方法来查找两个不同对象上属性的更改 这会生成一个具有差异
  • 如何使用 Bower 作为包管理器获取 Less v.2.0.0 的 Rhino 版本

    我正在使用 less js 的 Rhino 版本 使用 Bower 将其提取到我的开发环境中 在 1 7 5 下 一切正常 bower 将获得所有不同的版本 Node 和 Rhino 版本都将存储在我的环境中 最近更新到 2 0 0 后 似
  • PHP:嵌入另一个 URL 的 URL 的较短/模糊编码?

    我正在为自己编写一个脚本 它基本上可以让我在单个 get 请求的查询字符串中发送一个 URL 和两个整数维度 我使用 base64 对其进行编码 但它太长了 我担心 URL 可能会变得太大 有谁知道另一种更短的方法吗 在 get 请求中收到
  • 在 GAE/J 和 JPA 上使用 @MappedSuperclass 时,“字段 jdoFieldFlags 发生冲突”

    在 GAE J 上查询由映射超类扩展的实体时 出现错误 映射超类 import java sql Timestamp import javax persistence MappedSuperclass MappedSuperclass pu
  • numba 中的协程

    我正在开发一些需要快速协程的东西 我相信 numba 可以加快我的代码速度 这是一个愚蠢的例子 一个函数对其输入进行平方 并添加其被调用的次数 def make square plus count i 0 def square plus c
  • 如何在CSS中使滑块居中?

    我在主题上安装了这个插件 这个主题有一个滑块 但我不喜欢它 所以我安装了这个 http wordpress org extend plugins content slide http wordpress org extend plugins
  • 使用 gcc 编译 Python C 扩展时出现“...无法弄清楚...的架构类型”问题

    我刚刚从 Snow Leopard 升级到 Lion 我必须更新的旧 python c 扩展不想正确编译 我真的不知道在这里做什么 任何人都可以帮助我 使其编译正常吗 它在 Snow Leopard 中编译得很好 Home folder M
  • 正确从 QGraphicsScene/QgraphicsItemGroup/QGraphicsView 中删除项目

    我正在尝试使用可移动控制点绘制一个图QGraphicsView QGraphicsScene QGraphicsItemGroup 我遇到的问题是我找不到任何删除 删除该项目的方法 我的想法如下 我将有一个 QGraphicsView 在它
  • IIS 的 URL 重写规则替换每个页面中的文件夹路径

    我的网站项目有 300 多个页面 随着时间的推移 我们创建了一个安全的新服务器 该服务器专门用于网站中的所有图像 所以这是场景 当前图像的实现 在 aspx 中 在 css 中 http www mysite com assets comm
  • 朴素高斯预测概率仅返回 0 或 1

    我从 scikit sklearn 训练了 GaussianNB 模型 当我调用该方法时classifier predict proba它仅在新数据上返回 1 或 0 预计会返回预测正确与否的置信度百分比 我怀疑它能否对以前从未见过的新数据
  • Android 中将 ImageView 置于另一个 ImageView 中

    好吧 我必须将一个 ImageView 放入另一个 ImageView 中 它较小并且必须正好位于中心 我有两个针对不同屏幕分辨率缩放的图像 但我只能在一部手机上进行测试 我想知道是否使用 dpi 设置第二个图像的高度和宽度以适合我的屏幕分
  • 使用 FUSE 在 python 中创建临时文件

    我正在尝试使用 python fuse 编写程序 但无法记录文件 我的 file class 看起来像这样 class FuseFile object def init self path flags mode debug path deb
  • 获取 SWT 视图的大小

    我正在尝试确定 SWT 视图的大小 以便可以在插件中正确布局小部件 我正在使用 Java 8 运行 Eclipse Neon 我正在使用的代码如下 import org eclipse swt SWT import org eclipse
  • 实体框架:连接两个表和 where 子句

    我在使用实体框架和 PostgreSQL 时遇到问题 有人知道如何连接两个表并将第二个表用作 where 子句吗 我想在实体框架中执行的选择将在 SQL 中 SELECT ai id ai title ai description ai c
  • 如何包含绝对位置div?

    我有这个小提琴here http jsfiddle net 45atnh0u 这是下图 我需要实现的是让黑色容器根据里面的项目 项目是A B C 动态扩展 输出必须是 无需静态设置高度 我的html是 div class container
  • 相当于 gcc/g++ 中的 __declspec( bare )

    相当于什么 declspec naked in gcc g declspec naked 实际上用于声明一个没有任何尾声和序言的函数 在某些体系结构上 gcc 支持称为 naked 的属性 最近的gcc docs http gcc gnu
  • 如何修复拖放 JavaScript

    我创建了这个页面和脚本来使用 JavaScript HTML CSS 拖放对象 我聚焦对象跟随鼠标将鼠标悬停在页面项目上并将其放在容器上 但我的问题是拖放不起作用 这是代码 HTML div class container span spa
  • 按年份分割数据

    我有这样的数据 ID ATTRIBUTE START END 1 A 01 01 2000 15 03 2010 1 B 05 11 2001 06 02 2002 2 B 01 02 2002 08 05 2008 2 B 01 06 2