最后我想创造漂亮的circos plots,但要到达那里我需要显示从A到B,B到C和B到A等的人数。
我的数据集:
#Generate some sample data:
proc<-sample(c("EMR","RFA","Biopsies"), 100, replace = TRUE)
#Sample dates
dat<-sample(seq(as.Date('2013/01/01'), as.Date('2017/05/01'), by="day"), 100)
#Generate 20 hospital numbers in no particular order:
Id<-sample(c("P43","P63","K52","G24","S55","D07","U87","P22","Y76","I92","P22","P02","U22415","U23","S14","O34","T62","J32","F63","T43"), 100, replace = TRUE)
df<-data.frame(proc,dat,Id)
如果我正在为Snakey情节准备数据,我会这样做:
Sankey<-dcast(setDT(df)[, if(any(proc=="EMR"|proc=="RFA")) .SD, Id], Id~rowid(Id), value.var ="proc")
这将给我一个很好的表格,显示每个时间点的每个患者的顺序。
但我想进入下一步,即找出每种不同proc
类型(即“EMR”,“RFA”和“活组织检查”)之间转换的患者数量,以便我可以将它们变成一种环绕的格式,即(频率在这里组成)
origin destination frequency
EMR RFA 14
EMR Biopsies 4
EMR EMR 10
RFA RFA 24
RFA Biopsies 42
RFA EMR 1
Biopsies RFA 3
Biopsies Biopsies 6
Biopsies EMR 16
或者我想另一种显示它的方法是
destination
EMR RFA Biopsies
origin
EMR 10 14 4
RFA 1 24 42
Biopsies 16 3 6
答案 0 :(得分:1)
我会将a.each_with_index { |n, i| print i == a.size - 1 ? "#{n}\n" : "#{n} " }
用于该任务,分析的核心是dplyr
函数来检索每个患者的最后位置,以及lag
函数来计算病例。
整个分析将如下进行:
summarise
答案 1 :(得分:0)
我设法使用一种狡猾的方法来实现这一点,基本上将所有列粘贴在一起,然后使用stringr包分离然后制表。
\\.