Pathways:操作 R 中父子“节点”中的事件列表

2023-12-01

我感兴趣的是根据预先指定的事件列表(例如诊断、手术、治疗1、治疗2、死亡)可视化患者的路径。

测试数据集可能如下所示:

df <- structure(list(ID = structure(c(1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 
3L, 3L, 3L, 3L), .Label = c("a", "b", "c"), class = "factor"), 
    Event = structure(c(2L, 3L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L, 
    5L, 1L), .Label = c("death", "diagnosis", "surgery", "treatment1", 
    "treatment2"), class = "factor"), date = structure(c(14610, 
    14619, 16667, 14975, 14976, 14977, 15074, 15084, 15006, 15050, 
    15051, 15053), class = "Date")), .Names = c("ID", "Event", 
"date"), row.names = c(NA, 12L), class = "data.frame")

> df
   ID      Event       date
1   a  diagnosis 2010-01-01
2   a    surgery 2010-01-10
3   a      death 2015-08-20
4   b  diagnosis 2011-01-01
5   b    surgery 2011-01-02
6   b treatment1 2011-01-03
7   b treatment2 2011-04-10
8   b      death 2011-04-20
9   c  diagnosis 2011-02-01
10  c    surgery 2011-03-17
11  c treatment2 2011-03-18
12  c      death 2011-03-20

数据已按 ID 和日期排序。

我所追求的是以下内容:

> result
  ID     parent      child datediff
1  a  diagnosis    surgery        9
2  a    surgery      death     1950
3  b  diagnosis    surgery        1
4  b    surgery treatment1        1
5  b treatment1 treatment2       90
6  b treatment2      death       10
7  c  diagnosis    surgery       45
8  c    surgery treatment2        1
9  c treatment2      death        2

(请注意,datediff 列中的数字并非实际数字) 即一系列父子节点,它们之间的日期不同。

这将使我能够绘制节点,并对事件之间的时间进行一些进一步的描述性分析。

我找到了一个绘制节点的包(见下文)...有没有一种方法/包可以让箭头宽度反映父子组合的数量?

 require(igraph) # possible package to use
 parents<-c("A","A","A","A","A","A","C","C","F","F","H","I")
 children<-c("I","I","I","I","B","A","D","H","G","H","I","J")
 begats<-data.frame(parents=parents,children=children)
 graph_begats<-graph.data.frame(begats)
 tkplot(graph_begats)

折叠您的数据以给出每个父子组合以及它们发生的次数,例如:

# put the previous event against the current event, and drop the rows before the first event:
df$Event <- as.character(df$Event)
df$PreEvent <- with(df, ave(Event,ID,FUN=function(x) c(NA,head(x,-1)) ) )
result <- df[!is.na(df$PreEvent),c("ID","PreEvent","Event")]

# aggregate the combos by how often they occur:
result <- aggregate(list(count=rownames(result)),result[c("PreEvent","Event")],FUN=length)
#    PreEvent      Event count
#1    surgery      death     1
#2 treatment2      death     2
#3  diagnosis    surgery     3
#4    surgery treatment1     1
#5    surgery treatment2     1
#6 treatment1 treatment2     1

# plot in igraph, adjusting the edge.width to account for how many cases of each
# parent-child combo exist:
library(igraph)
g <- graph.data.frame(result)
plot(g,edge.width=result$count)

enter image description here

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

Pathways:操作 R 中父子“节点”中的事件列表 的相关文章

  • 为什么我收到保存错误、软盘错误的消息?

    我最近更新了 R 和 R studio 当我尝试保存文件时 收到一条错误消息 保存 文件名 时出错 驱动器中的软盘错误 将 2 卷序列号 3 插入驱动器 1 这是第一次看到这个错误信息 不知道该怎么办 我也无法 另存为 感谢您的帮助 尝试使
  • R 中带有变音符号的字符列表

    我试图将字符串中的电话 字符 出现次数制成表格 但变音符号单独作为字符制成表格 理想情况下 我有一个国际音标的单词列表 其中包含大量变音符号以及它们与基本字符的几种组合 我在这里给出了仅包含一个单词的 MWE 但对于单词列表和更多类型的组合
  • R 中的金字塔图

    对于示例数据集 我按国家 地区创建了一个金字塔图 显示人口中男性和女性超重的水平 library plotrix xy males overweight lt c 23 2 33 5 43 6 33 6 43 5 43 5 43 9 33
  • 使管道工 API 可通过互联网使用

    我对 R 中的管道工包相当陌生 我有一个可以在我的计算机上本地运行的工作 API 我可以使用以下代码从网络上的实时 JS 应用程序访问它 r lt plumb my api code r r run host 0 0 0 0 port 80
  • 使用示例代码继续在 ggplot2 中遇到错误“loop_apply”未从当前命名空间(plyr)解析”

    我今天一直遇到这个错误 我已经从 github 下载了 plyr 但它仍然不起作用 安装 plyr 后 我重新启动了 R studio 甚至我的电脑 看来问题可能是由于 R 解析对外部 DLL 的引用的方式发生了变化 正如线程中途提到的he
  • 在 R 中按邮政编码绘制美国地图上的点,并插入阿拉斯加和夏威夷

    我正在尝试以密度点格式在美国地图上绘制点 其中每个邮政编码的点的大小根据该邮政编码中从事某种职业的人数而定 我已经非常接近我需要的东西 但正在努力获取阿拉斯加和夏威夷的坐标 它们需要在插图上 这里的第一组代码是我所拥有的 loc full2
  • Quanteda 包,朴素贝叶斯:如何预测不同特征的测试数据?

    I used quanteda textmodel NB创建一个模型 将文本分类为两个类别之一 我将模型拟合到去年夏天的训练数据集上 现在 我今年夏天尝试使用它对我们在工作中收到的新文本进行分类 我尝试这样做并收到以下错误 Error in
  • ggplot多个时间不等的时间序列

    我知道有一些与时间序列和多个数据帧相关的已回答问题 但我似乎无法弄清楚这一点 我想绘制 4 个不同压力传感器与时间的时间戳数据 pa 列 我有来自同一实验的 4 个带时间戳的压力读数 dfs 然而 由于传感器故障和数据中的其他信号 传感器收
  • 滚动最小值,固定起点[重复]

    这个问题在这里已经有答案了 好的 我想计算数据框中的滚动最小值 向下滚动列 到目前为止 我无法确定该系列的起点并滚动到结尾 我努力了 mins lt c 10 5 6 10 6 6 7 8 2 12 roll min expected lt
  • R 版本 4.0.0 上的 ROracle

    当尝试使用 ROracle 时 我收到以下错误消息 gt library ROracle Error package or namespace load failed for ROracle package ROracle was inst
  • R 中的多面点阵图,例如线框:如何删除条带并添加 1 行字幕

    我使用这种功能 来自iris数据集 model test lt lm Sepal Length Petal Length Sepal Width Petal Width Species 2 data iris gg lt expand gr
  • 在水平条形图中绘制连续分布

    这是我之前的question https stackoverflow com questions 71318781 multiple variable distribution plot using ggplot2使用多重分布解决了这个问题
  • R strsplit之前(和之后)保留两个分隔符

    我有一个如下所示的字符串 x lt 01 01 121210 01 0001 我想将其分成一个向量 以便得到以下内容 1 0 1 01 1 2 1 2 1 0 01 0 0 0 1 可以是 或 括号之间的位数可以是 2 个或更多 我一直试图
  • 添加一条适合 R 中绘图峰值的曲线?

    如果给定两个向量及其图 是否有一个函数可以添加一条适合峰值的曲线 例如 我有 x c 0 20 X 1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 y 1 19 4 17 9 8
  • 如何编辑 R 函数的源代码?

    我正在与earlywarnings包 并想编辑其中编写的函数之一qda ews功能 我可以fix 但我想编辑的功能由于某种原因在我使用时没有列出fix 该函数称为generic RShiny 这是 github 的链接 https gith
  • 如何使用 roxygen 记录数据集?

    是否可以在 roxygen 进程中将 R 文件包含在我的包的数据目录中 我已将几个 R 文件放入数据目录中 当它们使用 data 获取数据时 它们会读取原始数据文件并执行一些转换 Roxygen 可以在 R 文件中的任何位置使用 换句话说
  • 使用 select_ 和starts_with R

    为什么这段代码不起作用 mtcars gt select starts with d Error in eval expr envir enclos could not find function starts with 这是简化的示例 我
  • 如何为ggplot中的每个方面行添加y轴标题?

    我正在做一个散点图facet grid 像那样 library ggplot2 ggplot df aes x y geom point facet grid group1 group2 我想要 y 轴标题y像这样位于每一行的中间 绘制解决
  • 将代表扩展到矩阵?

    如果你打电话rep在矩阵上 它重复其元素而不是整个矩阵 传统的修复方法是调用rep list theMatrix 我想延长rep以便它自动执行此操作 我尝试使用 rep matrix lt function x rep list x 这确实
  • 如何在R中生成多个矩阵

    我在 R 中得到了两个值列表 daily max car List 1 21 21 22 22 22 22 21 daily 0 8 List 2 16 17 17 17 18 17 17 尝试在 R Studio 中编写一个 For 循环

随机推荐

  • 我们不能在 Oracle 中使用 [specifier] 和 like 运算符吗?

    当在 oracle 中使用 LIKE 运算符来匹配任何字符时 我不能使用 说明符 例如 找出以 s 或 r 开头的客户姓名 因此我们不能将查询编写为 select from emp where customer LIKE sr ORACLE
  • 我的自定义 php 函数有问题

    好的 我正在尝试创建一个自定义函数 该函数将为最终用户回显 iframe 内的站点 url 该脚本必须检查用户是否已经看过该站点 如果已经看过 则不再显示该站点 而是从数据库等中获取另一个站点 URL 这是我到目前为止所想到的 functi
  • 使用 JSR303 进行 Spring MVC 日期格式验证

    我使用 Spring MVC 和 JSR303 来进行输入验证 我创建的表单有几个绑定到的日期字段Date支持表单的对象内的对象 我正在使用 JSR303 进行验证Date using Future 我也在用 DateTimeFormat
  • 如何在jmeter中解码base 64格式?

    有谁知道在 JMeter 中解码 Base 64 格式字符串的解决方案 我必须解码响应 但我不想重新发明轮子 我必须自己编写代码吗 希望不是 Thanks 你的解决方案非常好 但是 您可以使用 Beanshell 后处理器并将以前的采样器响
  • 如何在 React Native 中模糊文本

    问题很简单 我有一个带有文本组件的视图 我只是想让这段文字最初变得模糊 我看到的在 React Native 中模糊某些内容的唯一解决方案是通过 react native blur 来获取图像 How can we blur a TextR
  • NHibernate IList 列表

    您好 我正在尝试返回建筑域的集合 private long id private string buildingName private IList
  • SQL Server 代理作业在作业历史记录中记录自定义消息

    是否可以在作业历史消息中记录来自 SQL Server 代理作业的自定义消息 如果不是 做这样的事情最好的方法是什么 对于 T SQL 作业步骤 您可以使用print陈述 对于 CmdExec 步骤 请使用Console Writeline
  • 调用 Socket.Receive 后,C# Socket.Connected 属性更改为 false

    int readCount byte buffer new byte 128 SocketError socketError TcpClient tcpClient tcpListener AcceptTcpClient tcpClient
  • 是否可以在 CSS 中设置 JavaFX 静态属性?

    使用 BorderPanel alignment 的示例 FXML 静态属性
  • 是否可以有条件地分配@RequestParam中的Required值?

    我的控制器中有 2 个 RequestParam 参数 我想根据条件设置两个参数的必需值 条件可能是这样的 如果传递了一个参数 则必须传递另一个参数 因此将 other 的 required 设置为 true 反之亦然 否则 如果没有传递任
  • 将新文件夹添加到某个位置时触发脚本

    我正在自动化一个流程 并且已经为此制作了一个 powershell 脚本 现在我需要制作一些东西 每次将新文件夹添加到特定位置 即删除新版本 时都会调用该脚本 我应该为此使用什么 WCF 太多了吗 如果没有 有任何线索吗 任何有用的链接 或
  • 使用 CMDeviceMotion 获取绝对旋转?

    我正在使用 Sprite Kit 构建一个简单的游戏 屏幕不会旋转 但我想知道用户握持手机的角度以了解游戏机制 我想要获得的值可以使用加速度计 x y 轻松检索 但我发现这是不可靠的 所以我试图用以下方法存档更好的结果CMDeviceMot
  • vbscript MsgBox() 的 Javascript 等效函数

    我需要将以下函数转换为javascript MsgBox Are you a programmer 0 Please answer 我想我可以用confirm Are you a programmer 但我想知道如何在那里添加按钮顺序 Ja
  • WHM64 升级后无法访问 eximstats sqlite3 db

    WHM 64 升级后 无法访问 eximstat 数据库 MySQL代码更改为PDO来访问sqlite3 db 如下 db new PDO sqlite var cpanel eximstats db sqlite3 DB USER DB
  • 将列添加到文本文件

    我有一个只有一列的数据文件 我想在左侧添加 2 列 在右侧添加 2 列 我认为一个简单的方法是使用 numpy 数组 这是我尝试过的 z np loadtxt data file dat new np zeros z shape 0 5 f
  • 数组元素的减号运算

    我有一个数组 A 11 23 32 44 56 88 55 14 78 79 和 B 44 56 88 55 14 现在使用 VBScript 我可以执行 Set手术MINUS要获得其他输出 例如 C 11 23 32 78 79 数组 A
  • NSDecimalNumber(x).intValue 返回 -2、0、15 和 199,具体取决于 x 中的小数位数 (x = 199.999...5)

    我们在业务逻辑中发现了一个有趣的案例 它完全打破了我们的逻辑 但我们不明白为什么NSDecimalNumber and Decimal表现得像它那样 我的案例游乐场如下 import Foundation let pQuantity Dec
  • 无法启动 kibana-4.1.2

    我的环境 CentOS 6 6 elasticsearch 2 0 0 rc1 rpm kibana 4 1 2 linux x64 root node2 files sestatus SELinux status enabled SELi
  • 如何在android中显示外部图像?

    我想显示外部图像 例如 http abc com image jpg 在我的 Android 手机应用程序中 谁能指导我如何实现这一目标 有很多方法可以实现您的要求 基本上 您必须使用 urlrequest 下载图像 然后使用 InputS
  • Pathways:操作 R 中父子“节点”中的事件列表

    我感兴趣的是根据预先指定的事件列表 例如诊断 手术 治疗1 治疗2 死亡 可视化患者的路径 测试数据集可能如下所示 df lt structure list ID structure c 1L 1L 1L 2L 2L 2L 2L 2L 3L