有什么方法可以通过某个索引将数据绑定到 data.frame 吗?

2024-03-24

#For say, I got a situation like this
user_id = c(1:5,1:5)
time = c(1:10)
visit_log = data.frame(user_id, time)

#And I've wrote a method to calculate interval
interval <- function(data) {
    interval = c(Inf)
    for (i in seq(1, length(data$time))) {
        intv = data$time[i]-data$time[i-1]
        interval = append(interval, intv)
    }

    data$interval = interval
    return (data)
}

#But when I want to get intervals by user_id and bind them to the data.frame,
#I can't find a proper way
#Is there any method to get something like
new_data = merge(by(visit_log, INDICE=visit_log$user_id, FUN=interval))

#And the result should be
    user_id time interval
1        1    1      Inf
2        2    2      Inf
3        3    3      Inf
4        4    4      Inf
5        5    5      Inf
6        1    6        5
7        2    7        5
8        3    8        5
9        4    9        5
10       5   10        5

我们可以用以下内容替换您的循环diff()计算向量中相邻索引之间的差异的函数,例如:

> diff(c(1,3,6,10))
[1] 2 3 4

我们可以在此之前添加Inf通过差异c(Inf, diff(x)).

接下来我们需要将上述内容应用到每个user_id单独。为此有很多选择,但这里我使用aggregate()。令人困惑的是,这个函数返回一个带有time本身就是一个矩阵的组件。我们需要将该矩阵转换为向量,这取决于 R 中首先填充矩阵列的事实。最后,我们添加和interval根据函数的原始版本将其添加到输入数据列。

interval <- function(x) {
    diffs <- aggregate(time ~ user_id, data = x, function(y) c(Inf, diff(y)))
    diffs <- as.numeric(diffs$time)
    x <- within(x, interval <- diffs)
    x
}

下面是一个稍微扩展的例子,每个用户有3个时间点,来说明上面的功能:

> visit_log = data.frame(user_id = rep(1:5, 3), time  = 1:15)
> interval(visit_log)
   user_id time interval
1        1    1      Inf
2        2    2      Inf
3        3    3      Inf
4        4    4      Inf
5        5    5      Inf
6        1    6        5
7        2    7        5
8        3    8        5
9        4    9        5
10       5   10        5
11       1   11        5
12       2   12        5
13       3   13        5
14       4   14        5
15       5   15        5
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

有什么方法可以通过某个索引将数据绑定到 data.frame 吗? 的相关文章

  • 如何将环境变量传递给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 编程中的字符串分割

    目前 下面的脚本将组合的项目代码拆分为特定的项目代码 rule2 lt c MR df 1 lt test grep paste rule2 sep collapse test Name y SpaceName 1 lt function
  • 如何正确调整 R 中 ggplot 的各个方面的大小,包括图例?

    我在 ggplot2 中制作散点图 然后使用 ggsave 导出特定宽度和高度的 PDF 但是 图形图例永远不会使用 ggsave 正确调整大小 其边框不会留在绘图内 是否有另一种方法可以同时调整 ggplot 所有部分的大小以便于导出 我
  • R:计算自上次出现某个值以来的累积总和和计数

    给定简化数据 set seed 13 user id rep 1 2 each 10 order id sample 1 20 replace FALSE cost round runif 20 1 5 75 1 category samp
  • R Shiny UI 子选项复选框?

    我有一个基本的 RShiny 应用程序 它有一个反应式复选框 它根据复选框中选择的数据 df 列 绘制时间序列数据 我当前的代码生成一个带有复选框输入的 UI 如下所示 Load R packages library shiny libra
  • 如何在 R 中创建循环来生成随机样本列表?

    我正在尝试创建一个循环来创建一系列包含随机样本的对象 如下所示 sample lt ceiling runif 9 min 0 max 20 这是圆形制服的示例 但它可以替换为普通 泊松或任何您想要的 因此 我构建了一个循环来自动生成各种生
  • 通过 rpy 将 SPSS 文件(.sav)导入 pandas 时如何保留标签?

    我正在寻找使用 SPSS 文件 sav pandas 在没有 SPSS 程序的情况下 典型文件转换为 csv 后的样子如下 在调查前两行的含义时 我不知道 SPSS 似乎第一行包含Labels 而第二行包含VarNames 当我将文件带入
  • 使用开源闪亮服务器时,我的图标不会显示在我的应用程序的浏览器选项卡上

    我一直在尝试找到一种方法将 ico 与托管在开源闪亮服务器上的闪亮应用程序的快捷方式关联起来 最终 我希望 ico 显示为我的应用程序快捷方式的图形 而且 我希望用户在创建应用程序的快捷方式时显示 可用此图标 听起来很简单 但事实证明这是一
  • 使用 sapply 的列表和矩阵

    我有一个也许是基本的问题 我在网上搜索过 我在读取文件时遇到问题 尽管如此 我还是按照 Konrad的建议设法读取了我的文件 我很欣赏这一点 How to get R to read in files from multiple subdi
  • 确定 R 中的组是否重复某个值

    我有一个包含许多列和行的数据 我想通过创建新的逻辑变量来确定某个组的值是否重复 相同 所以我的数据如下所示 v0 lt c 1 2 3 4 5 6 7 8 9 v1 lt c a b a c e c b b e v2 lt c R NA R
  • 如何替换R中的“意外转义字符”

    当我尝试从 Facebook URL 的字符对象解析 JSON 时 我收到 fromJSON data 中的错误 位置 130 处出现意外的转义字符 o 看一下这个 library RCurl library rjson data lt g
  • 如何使用 ggplot2 绘制 NA 间隙

    在 R 的基本绘图中 如果数据系列 ggplot2 中存在 NA 则会绘制间隙 举个例子看看 df data frame x c 1 10 y c 1 10 df 5 7 NA plot df type l 但是 ggplot2 删除了缺失
  • 如何在 R 中绘制预测的子集?

    我有一个简单的 R 脚本来根据文件创建预测 自 2014 年以来就有数据记录 但我在尝试实现以下两个目标时遇到了困难 仅绘制预测信息的子集 从 11 2017 开始 以特定格式包含月份和年份 即 6 月 17 日 这是链接到dataset
  • R 抑制系统或 shell 命令的控制台输出

    我有这个 Windows 批处理文件 我使用 R 从 R 调用该文件shell 命令 该批处理文件执行一些计算并将它们写入磁盘上 也写入屏幕上 我只对磁盘输出感兴趣 我无法更改批处理文件 批处理文件可能有点愚蠢 例如 echo off ec
  • 双向条形图,两侧带有正标签ggplot2

    我尝试在 ggplot 中创建一个双向条形图 其中轴上方和下方的轴标签和数据标签均为正值 例如 如果您的数据是 myData lt data frame category c yes yes no no month c Jan Feb Ja
  • 如何在主图区域之外的 ggplot2 中添加多个标题

    我想为页脚添加两个标题 但 ggplot 似乎只需要 1 是否有解决方法可以将注释或 geom text 添加到左下角和右下角 library ggplot2 p lt ggplot mtcars aes x wt y mpg geom p
  • 为“facet_wrap”中的每列创建边框和标题

    我想在每个方面周围放置带有标签和标题的黑色边框facet wrap 与此类似的东西 样本数据 library tidyverse mtcars gt mutate gear factor gear levels c 4 3 5 gt ggp
  • 无法使用 cairo 安装 R

    我正在从源代码安装 R cd R 3 2 2 configure prefix pwd with cairo yes with readline no with libpng yes with x no 我已经从源代码安装了 cairo v
  • 如何在 R 树形图中省略标签?

    我一直在使用R 树形图包 http cran r project org web packages treemap treemap pdf我有一个 2 层深的树形图 我希望打印第二级标签 但不打印第一级标签 使用手册页中的示例 tmPlot

随机推荐

  • 在 C# windows 服务中捕获键盘事件

    我用 C 创建了一个 Windows 服务 如何在按下某个键时调用一个函数 并在该函数中获取该键的值 我需要它来按下键和按下键 我的目标是在按下特定系列的键时发送电子邮件 例如 如果您按 h e l l o 无论您在桌面上的哪个位置键入 程
  • TFS 2017 发布管理:如何显示发布下任务的父 PBI

    有没有办法在 TFS2017 下的列表中显示发布下的任务工作项的父 PBI The screenshot below shows two tasks associated with Release 3 Here I wish to be a
  • cipher 中 update() 和 dofinal() 方法之间的区别

    我读过一篇关于密码中 update 和 dofinal 方法之间差异的文章 这是关于如果我们想要加密 4 字节数组 当密码的块大小为 8 字节 时会发生什么 如果我们在这里调用 update 它将返回 null 我的问题是 如果我们用 4
  • 使用 Maven 和 IntelliJ 在 tomcat 中运行应用程序

    如果不使用 maven 要从 Intellij IDE 在 tomcat 上运行应用程序 您所要做的就是创建一个工件和指向该工件的 tomcat 运行配置 这样您就可以看到 tomcat 输出 重新启动服务器等就在 IDE 中 现在使用ma
  • 过渡状态图 R

    我的数据看起来像这样 输出dput sequence data structure list Obs 1 13 Seq 1 structure c 1L 1L 1L 1L 2L 2L 2L 2L 2L 2L 3L 3L 3L Label c
  • 使用 FFMPEG 将音频(带有偏移量)添加到视频

    我有一个 10 分钟的视频和一个 50 分钟的音频 mp3 视频从音频第 500 秒开始 使用 FFMPEG 如何将音频添加到视频但指定500 秒音频偏移 以便他们同步 EDIT 在这个底部page http howto pages org
  • 灰度图像到 NumPy 数组进行傅里叶变换

    目前我正在使用 PIL 和 NumPy 我有一个彩色的png图像 我想要 以灰度读取 转换为 NumPy 数组 对阵列执行 FFT 显示图像 这就是我正在尝试的 在 IPython w pylab flag In 1 import Imag
  • 如何使用多处理模块杀死进程?

    我有一个进程本质上只是一个无限循环 我有第二个进程是一个计时器 定时器完成后如何终止循环进程 def action x 0 while True if x lt 1000000 x x 1 else x 0 def timer time t
  • 如何通过另一种方法动态地将元素添加到反应器热通量中?

    我有一个数据源服务 它接受观察者作为参数 void subscribe Consumer onEventConsumer 我想使用 Flux 作为 RSocket 的响应流 我怎样才能做到这一点 我现在看到的应该是这样的 Flux
  • C# 中文字的算术运算是否在编译时计算?

    非常简短的问题 但我现在无法在网上找到解决方案 int test 1 2 Will 1 2在运行时或编译时执行 询问原因 我认为大多数人有时会使用文字而不指定其使用原因或含义 因为他们不想通过运行计算来浪费一点性能 并且我相信计算发生在编译
  • 无法访问 Azure 文件共享 |端口 445

    我已经设置了 Azure 存储文件 并在我的开发计算机中添加了一些防火墙规则来打开端口 445 但我现在无法访问我的文件共享 它也不响应 ping 命令 但我可以从 Azure VM IaaS 服务器访问相同的文件共享 有什么我错过的吗 不
  • ASP.NET MVC 3 - 如何从数据库填充单选按钮列表

    在 Asp net MVC 3 中 我的单选按钮设置如下 div class editor label Html LabelFor m gt m Roles div div class editor field Html RadioButt
  • 从 iOS 14 小部件的 CoreData 获取数据

    我想在小部件中显示从核心数据获取的数据 但 FetchRequest不适用于小部件 据我了解 我们必须创建一个应用程序组并创建一个共享的持久容器 我想知道的是如何从共享的持久容器中读取 获取 小部件上的数据 或者简单地 如何在小部件中显示从
  • Sublime Text 3 控制台中的 Unicode 编码错误

    我总是得到一个 UnicodeEncodeError ascii 编解码器无法对位置 0 处的字符 xf6 进行编码 序号不在范围 128 中 当尝试打印非 ASCII 字符时 在 Sublime Text 3 控制台中 我正在使用 Ana
  • 如何使用 NetworkX 获得加权图中的最短路径?

    我试图在定义为的加权图中获得最短路径 import networkx as nx import matplotlib pyplot as plt g nx Graph g add edge 131 673 weight 673 g add
  • Sugar ORM for Android 找不到我的列名

    好吧 我正在尝试选择所有实体entitie id some id 我用这个规则来做到这一点 List
  • TinyMCE 4 与 elFinder

    有人已经尝试将 elFinder 集成到新的 4b1 版本的 TinyMCE 中吗 看起来像previous http www tinymce com wiki php how to implement a custom file brow
  • 按特定顺序对(数组)列表进行排序

    我有一个对象列表 我想按照定义的顺序对其进行排序 对于前 我有一个带有字段的对象String color 我想在颜色字段上对我的列表进行排序 以便它总是首先是白色 然后是蓝色 然后是黄色 然后是所有其他 如果可能的话 alpha order
  • 在 Java 中使用 PrinterJob 打印 PDF 文件

    我在尝试使用 Java 打印 PDF 文件时遇到问题 这是我的代码 PdfReader readFtp new PdfReader This class is used for reading a PDF file PDDocument d
  • 有什么方法可以通过某个索引将数据绑定到 data.frame 吗?

    For say I got a situation like this user id c 1 5 1 5 time c 1 10 visit log data frame user id time And I ve wrote a met