子序列的数量奇怪吗?

2023-12-22

我有一个像这样创建的序列对象:

subsequences <- function(data){
  slmax <- max(data$time)
  sequences.seqe <- seqecreate(data)
  sequences.sts <- seqformat(data, from="SPELL", to="DSS", begin="time", end="end", id="id", status="event", limit=slmax)
  sequences.sts <- seqdef(sequences.sts, right = "DEL", left = "DEL", gaps = "DEL")
  (sequences.sts)
}

data <- subsequences(data)

head(data)

给出输出:

    Sequence                                                                     
[1] discussed-subscribed-*-discussed-*-discussed-*-discussed-*-discussed-*-closed
[2] *-opened-*-reviewed-*-discussed-*-discussed-*-discussed-*-merged             
[3] *-discussed-*-discussed-*-discussed-*-discussed                              
[4] *-opened-*-discussed-merged-discussed                                        
[5] *-discussed-*-referenced-discussed-closed-discussed-referenced-discussed     
[6] *-referenced-*-referenced-*-referenced-assigned-*-closed

但是当我计算子序列时,我得到了看似荒谬的答案:

seqsubsn(head(data))
 [!] found missing state in the sequence(s), adding missing state to the alphabet
    Subseq.
[1]    1036
[2]    1248
[3]      88
[4]      49
[5]     294
[6]     240

子序列的数量怎么可能远远大于每个序列中事件的数量?

可以找到数据集的“dput()”here https://gist.github.com/aronlindberg/8067503。问题似乎是原始数据的时间戳以秒为单位。但是,我使用了下面的函数来将时间戳更改为简单的顺序:

read_seqdata <- function(data, startdate, stopdate){
  data <- read.table(data, sep = ",", header = TRUE)
  data <- subset(data, select = c("pull_req_id", "action", "created_at"))
  colnames(data) <- c("id", "event", "time")
  data <- sqldf(paste0("SELECT * FROM data WHERE strftime('%Y-%m-%d', time,
    'unixepoch', 'localtime') >= '",startdate,"' AND strftime('%Y-%m-%d', time,
    'unixepoch', 'localtime') <= '",stopdate,"'"))
  data$end <- data$time
  data <- data[with(data, order(time)), ]
  data$time <- match( data$time , unique( data$time ) )
      data$end <- match( data$end , unique( data$end ) )
  slmax <- max(data$time)
  (data)
}

这使得为​​熵、序列长度等创建适当的度量成为可能,但子序列的数量仍然是个问题。


返回的子序列的数量一点也不奇怪。这是“子序列”的定义问题,不应与“子字符串”混淆。

如果序列 $x = (x_1, x_2, ... , x_3)$ 的元素 $x_i$ 全部位于 $y$ 中并且出现顺序与 $y$ 中的顺序相同,则该序列 $x = (x_1, x_2, ... , x_3)$ 是 $y$ 的子序列。例如,A-B-A 是 C-A-D-B-C-D-A-D 的子序列。

为了说明这一点,请考虑 TraMineR 包中的“mvad”示例。

library(TraMineR)
data(mvad)
mvad.scodes <- c("EM", "FE", "HE", "JL", "SC", "TR")
mvad.seq <- seqdef(mvad, 17:86, states = mvad.scodes)
print(mvad.seq[1:3,], format="SPS")

##    Sequence                      
##[1] (EM,4)-(TR,2)-(EM,64)         
##[2] (FE,36)-(HE,34)               
##[3] (TR,24)-(FE,34)-(EM,10)-(JL,2)

seqsubsn(mvad.seq)[1:3]

##[1]  7  4 16

默认情况下,seqsubsn计算不同连续状态 (DSS) 的子序列数。例如,第一序列的DSS是EM-TR-EM。 EM-TR-EM 的七个子序列是:

  • 空序列
  • 由单个元素组成的两个序列:EM 和 TR
  • 两个长度的子序列:EM-TR、EM-EM、TR-EM
  • 三长度序列:EM-TR-EM

以同样的方式进行,您可以验证第四个序列(等于其 DSS)

*-opened-*-discussed-merged-discussed

有 49 个子序列,其中 9 个两长子序列:

*-open, *-discussed, *-merged, opened-*, opened-discussed, opened-merged, discussed-merged, discussed-discussed, merged-discussed

希望这可以帮助

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

子序列的数量奇怪吗? 的相关文章

  • 无法使用 Rugged 克隆存储库

    使用 openSUSE 和 Ubuntu 并安装了依赖项 我无法克隆远程存储库Rugged Repository clone at方法并获取错误信息 Rugged NetworkError 此传输未实现 对不起 代码 credentials
  • 长按时忽略mapView:didSelect Annotation View

    我正在为这个问题苦苦挣扎 我有一个地图视图 在一个小区域中有很多图钉 当我长按地图时 我想忽略地图视图对注释的选择 无论我是否长按注释视图 似乎注释是在触摸时被选择的 而不是在注释视图内部进行触摸 这很烦人 我在地图视图中添加了一个长按手势
  • 如何将 seewave 频谱图转换为 wav 文件

    我想操纵一个seewave音频频谱图 然后将其转换回 wav文件 一个简单的例子 library tuneR library seewave data tico generate spectrogram with phase informa
  • 在android studio中设置google play扩展文件库

    我正在尝试在我的 android 项目中使用 apk 扩展文件 我已经读过这篇文章http developer android com google play expansion files html http developer andr
  • `git rebase master` 和 `git rebase --onto master` 之间有什么区别?

    就像标题所说 有什么区别git rebase master and git rebase onto master 我运行了这两个命令 希望看到完全相同的结果 但之后得到了两个截然不同的提交历史记录 这有什么大不了的 它们有何不同 不接受这个
  • 更改悬停链接上引导导航栏的颜色?

    我想知道当您将鼠标悬停在导航栏中的链接上时如何更改链接的颜色 因为目前它们的颜色很难看 感谢您的任何建议 HTML div class container div class navbar div class navbar inner ul
  • 在不合并 Google Play 服务的情况下使用 webview 进行 oAuth Google 的替代方案

    我们有在 Android 操作系统上运行的自定义设备 但没有整合 Google Play 服务 我们使用 Webview Oauth 2 0 身份验证进行 Google 登录 根据文档 它已被弃用 我读到有一种方法https develop
  • 有没有办法在 WPF 控件库中使用 StaticResource 并能够在设计时查看?

    我有一个 WPF 控件库 正在添加到 Windows 窗体应用程序中 我们希望允许控件可本地化 但是我不确定如何在不重复代码的情况下完全实现这一点 这就是我现在正在做的事情 https stackoverflow com questions
  • 与 memcpy 连接

    我正在尝试使用 memcpy 将两个字符串添加在一起 第一个 memcpy 确实包含我需要的数据 然而 第二个并没有添加 知道为什么吗 if strlen g gt db cmd lt MAX DB CMDS memcpy g gt db
  • Google 如何检测来自 WebView 的请求?

    谷歌宣布他们 将不再允许在称为 网络视图 的嵌入式浏览器中向 Google 发出 OAuth 请求 https developers googleblog com 2016 08 modernizing oauth interactions
  • 如何对 .cshtml 文件进行 lint 处理?

    使用 ESLint 可以轻松检查 js 文件 使用 html 或 script tag 之类的插件 在 html 文件中的标签内检查 JavaScript 代码也很简单 但是 当涉及 cshtml 文件内的脚本标记时 我陷入困境 有谁知道如
  • Shell 脚本:使用 xargs 执行 shell 函数的并行实例

    我试图在 shell 脚本中使用 xargs 来运行我在同一脚本中定义的函数的并行实例 该函数对页面的获取进行计时 因此重要的是页面实际上是在并行进程中同时获取的 而不是在后台进程中 如果我对此的理解是错误的并且两者之间的差异可以忽略不计
  • 在哪些领域使用 F# 比 C# 更合适? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 在过去的几年里 F 已经发展成为 Microsoft 完全支持的语言之一 采用了 OCaml ML 和 Haskell 中孕育的许多想法 在过去
  • Bash:等待超时

    在 Bash 脚本中 我想做类似的事情 app1 pidApp1 app2 pidApp2 1 timeout 60 wait pidApp1 pidApp2 kill 9 pidApp1 pidApp2 即 在后台启动两个应用程序 并给它
  • Delphi 中 IntraWeb 的替代品? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 IntraWeb for Delphi 有其他替代品吗 如果我想用Delphi编写一个简单但有意义的网络服务器 当我也在做 Delphi

随机推荐

  • UUID 命名空间从何而来?

    The UUID规范 https www rfc editor org rfc rfc4122 html section 4 3定义了 4 个预定义的命名空间 将其描述为 可能有趣 除其他外 这意味着 如果其他人在这个命名空间中生成了 UU
  • 如何解决“迭代器应该返回字符串,而不是字节”

    我正在尝试导入 CSV 文件 使用表单从客户端系统上传文件 获得文件后 我将提取其中的一部分并在我的应用程序中填充模型 但是 当我去迭代上传文件中的行时 出现 迭代器应该返回字符串 而不是字节 错误 我花了几个小时尝试不同的事情并阅读了我能
  • CSS 转换仅在 Chrome 开发工具打开时有效

    我遇到了 CSS 转换的奇怪异常 加载时完全忽略转换 但是如果我打开 Chrome 开发工具并导航 DOM 树 popup gt div gt img并选择它 然后单击主图像 过渡就会起作用 并且即使开发工具关闭也仍然如此 我怀疑我犯了一些
  • 所有输入字段通过 jQuery 代码上的单行/最少行进行验证

    我有一个表单 其中有 30 个输入框 10 个文本区域和 3 个选择框 updated 字段且全部为必填字段 如何通过 jQuery javascript 对所有输入字段应用验证can t be blank empty NULL 我不想每次
  • 如何编写单元测试的输出?

    我的单元测试中的任何调用Debug Write line or Console Write Line 调试时只是被跳过 并且输出永远不会打印 从我正在使用的类中调用这些函数工作正常 我知道单元测试应该是自动化的 但我仍然希望能够从单元测试中
  • 当不使用带有奇怪访问器的注释时加载 mongodb 哈希关联数组映射的正确方法[关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我这样做是为了映射文档的非注释映射 但它还没有赶上 我知道这是旧代码 但有人知道如何正确映射它 谢谢 相关公关 https git
  • 尽管发送了“升级”标头,但浏览器不会升级到 h2 (HTTP/2)

    我正在尝试让 h2 HTTP 2 在我的网络服务器上工作 通过 ondrej 存储库安装了 Apache 2 4 20 我在 Debian 8 和 Ubuntu 14 04 服务器上进行了测试 但我不断遇到同样的问题 我正在运行 OpenS
  • Micronaut 使用 HttpClient 读取超时

    我正在努力使用Micronaut HTTP客户端对于多次调用第三方 REST 服务而未收到io micronaut http client exceptions ReadTimeoutException 要消除第三方依赖性 可以使用调用其自
  • 前 3 名得分 - MySQL [重复]

    这个问题在这里已经有答案了 我正在建立一个 前 3 名 排行榜 我想显示前 3 个分数 绘制每个人的最大值 但我不想限制 3 个 因为我想显示具有前 3 个分数的任何人 例如 使用下面的数据 Name Score Matt 17 Mark
  • 通过 Facebook Graph API 提取照片

    我正在尝试提取当前登录个人资料的标记照片 获得了会话 ID 但它似乎是一个空数组 img src 我知道这段代码可能真的很糟糕 我是 PHP 新手 只是尝试了一些东西 如可用文档所述here http develo
  • 如何一次杀死 Unix 中的所有 shell?

    随着时间的推移 我的 Mac 变得越来越慢 原因是我的贝壳数量巨大 例如 Bashes 和 Fishes 每个shell都有不同的PID 一颗颗杀炮弹太麻烦了 怎样才能一次性杀死他们呢 The killall https ss64 com
  • 如何知道我单击了哪个元素来触发模糊事件处理程序? [复制]

    这个问题在这里已经有答案了 非常简单 我有一个模糊 事件处理程序来触发一个函数 我希望当单击某个元素触发模糊时该函数不会触发 我尝试了 document activeElement 但我得到的是 HTMLBodyElement 而不是我单击
  • 从 R 中的数据表中提取唯一行[重复]

    这个问题在这里已经有答案了 我正在从数据框和矩阵迁移到数据表 但尚未找到从数据表中提取唯一行的解决方案 我想我遗漏了一些东西 J 符号 尽管我还没有在常见问题解答和简介小插图中找到答案 如何提取唯一的行 而不转换回数据框 这是一个例子 li
  • 为什么“autoreconf”不经常使用?

    我是新手自动工具 https en wikipedia org wiki GNU Autotools 根据我的理解 使用 Autotools 构建软件需要遵循以下基本步骤 autoreconf install configure make
  • 移动应用的同源政策

    我一直在研究这个问题 但找不到令我满意的答案 我非常清楚同源策略适用于标准网络浏览器中的网站 当我开始开发一个使用本机 webview 并使用 jQuery 加载网站内容的移动应用程序时 我的问题出现了 load方法 通常在标准 Web 浏
  • 如何在调试模式下将命令行参数从 VS 传递给 Python?

    我正在使用 Visual Studio 的 Python 工具 注意 不是 IronPython 我需要使用从命令行传递给模块的参数 我了解如何通过在代码窗口中右键单击并选择 从调试开始 来在调试中启动模块 但这种方法永远不会提示我输入命令
  • 当搜索输入字段被清除时,如何从搜索过滤器中隐藏列表项目?

    我有一个像这样的 HTML 列表项 ul li a href Mango a li li a href Apple a li li a href Grape a li li a href Cherry a li ul 用户将看不到这些项目
  • 为什么动态添加 script 元素时 document.currentScript 没有属性?

    我有一个脚本如下 当脚本是index html 的一部分时 长度属性值为1 属性数量 的NamedNodeMap 对象将记录到控制台 如果该脚本是通过另一个脚本动态添加的 则长度属性值为 0 的 NamedNodeMap 对象将记录到控制台
  • 在对象类型 ng 模型值上使用 $formatter ,角度 1.2 有效,但版本 1.3 无效

    该代码适用于 Angular 1 2 26 但不适用于 Angular 1 3 0 rc5 或我尝试过的任何 1 3 x 版本 我发现这个问题https github com angular angular js issues 9218 h
  • 子序列的数量奇怪吗?

    我有一个像这样创建的序列对象 subsequences lt function data slmax lt max data time sequences seqe lt seqecreate data sequences sts lt s