我的树形图非常丑陋,处于不可读的边缘,通常看起来像这样:
library(TraMineR)
library(cluster)
data(biofam)
lab <- c("P","L","M","LM","C","LC","LMC","D")
biofam.seq <- seqdef(biofam[1:500,10:25], states=lab)
ccost <- seqsubm(biofam.seq, method = "CONSTANT", cval = 2, with.missing=TRUE)
sequences.OM <- seqdist(biofam.seq, method = "OM", norm= TRUE, sm = ccost,
with.missing=TRUE)
clusterward <- agnes(sequences.OM, diss = TRUE, method = "ward")
plot(clusterward, which.plots = 2)
Run Code Online (Sandbox Code Playgroud)
我想要创建的是类似下面的内容,意思是圆形树状图,可以仔细控制标签的大小,使它们实际可见:
我怎样才能在R中实现这一目标?
我试图使用ggplot创建序列图,以便使用序列分析在我的论文中保持相同的视觉样式。我做:
library(ggplot2)
library(TraMineR)
library(dplyr)
library(tidyr)
data(mvad)
mvad_seq<-seqdef(mvad,15:length(mvad))
mvad_trate<-seqsubm(mvad_seq,method="TRATE")
mvad_dist<-seqdist(mvad_seq,method="OM",sm=mvad_trate)
cluster<-cutree(hclust(d=as.dist(mvad_dist),method="ward.D2"),k=6)
mvad$cluster<-cluster
mvad_long<-gather(select(mvad,id,contains("."),-matches("N.Eastern"),-matches("S.Eastern")),
key="Month",value="state",
Jul.93, Aug.93, Sep.93, Oct.93, Nov.93, Dec.93, Jan.94, Feb.94, Mar.94,
Apr.94, May.94, Jun.94, Jul.94, Aug.94, Sep.94, Oct.94, Nov.94, Dec.94, Jan.95,
Feb.95, Mar.95, Apr.95, May.95, Jun.95, Jul.95, Aug.95, Sep.95, Oct.95, Nov.95,
Dec.95, Jan.96, Feb.96, Mar.96, Apr.96, May.96, Jun.96, Jul.96, Aug.96, Sep.96,
Oct.96, Nov.96, Dec.96, Jan.97, Feb.97, Mar.97, Apr.97, May.97, Jun.97, Jul.97,
Aug.97, Sep.97, Oct.97, Nov.97, Dec.97, Jan.98, Feb.98, Mar.98, Apr.98, May.98,
Jun.98, Jul.98, Aug.98, Sep.98, Oct.98, Nov.98, Dec.98, Jan.99, …
Run Code Online (Sandbox Code Playgroud) 希望很快....
关于seqefsub()
操作的输出,请指出输出符号的定义。
更具体地说,例如
(A)
意味着什么; (A>B)
意味着什么;(A)-(A>B)
表示什么。Section 10
出色的《用户指南》中的示例,但我可能在某处错过了明确的定义声明。
引用Section 10.2
指南中的示例,和之间的概念区别(Parent)-(Parent>Left)
是(Parent>Left)
什么?
谢谢,
戴夫
吉尔伯特发表评论后进行更新。...
在试图澄清用户指南第106页上可能遗漏的内容时,我认为我正在寻找的解释(或至少是确认书)是遵循以下框架的内容。对可能的笨拙词句表示歉意。
这里的上下文是seqefsub()
结果出现在控制台中的时间。
(A)
这是状态A出现为第一个状态(而不是任何后续状态)的次数。也就是说-它计算A在第一列中出现的次数。我在这里假设我没有错过另一个配置选项,该配置选项首先计算该类型的所有状态。如果有请让我知道。
(A>B)
这是事件从A到B发生(即状态改变)的次数。此计数是指序列中任何位置的事件。我建议,这与上面的状态数略有不同,假设我没有无意中歪曲了事实。我注意到可以将约束设置为输出单个或多个事件。
(A)-(A>B)
这将计数状态A作为第一种状态发生的次数,以及A到B事件在序列中任何位置发生的次数。这包括紧接在第一状态之后的A到B事件,并且可以包括在第一状态A和事件A到B之间插入其他状态。
我希望这会有所帮助,也希望这是一组正确的陈述(基于比我最初的问题晚的调查)。
在吉尔伯特发表评论后要求示例的第二次更新。
对于真实数据集...(其中J和I代替A和B)
> data
V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 V11
1 I J J I J J I K J D J
2 G K R I …
Run Code Online (Sandbox Code Playgroud) 我正在使用R软件包TraMineR来计算和分析状态序列.我想使用命令seqfplot获得序列频率图.但是,不要使用设置要绘制的最频繁序列的数量
seqfplot(mydata.seq, tlim=1:20)
Run Code Online (Sandbox Code Playgroud)
设置达到的最常见序列的百分比(例如,50%的样本)将是有用的.我试过这个
seqfplot(mydata.seq, trep = 0.5)
Run Code Online (Sandbox Code Playgroud)
但是-不同于seqrep.grp
和seqrep
-选项trep
不被支持的seqfplot
命令.我应该创建一个新功能吗?
谢谢.
我在记事本文本文件中有数据.请帮我把TXT文件转换成TSE格式.
记事本中的文本数据:
日期,时间,用户,流程,活动
2013-06-25,10:34:21.4375,uni15,1,Index
2013-06-25,10:35:13.0156,uni15,1,ItemDetailsPartial
2013-06-25,10 :35:54.9843,uni15,1,CloseItemDetailsPartial
2013-06-25,10:35:59.5781,uni15,1,FilterByTag
2013-06-25,10:36:05.9218,uni15,1,ItemDetailsPartial
我有一个看起来像这样的文件:
type created_at repository_name
1 IssuesEvent 2012-03-11 06:48:31 bootstrap
2 IssuesEvent 2012-03-11 06:48:31 bootstrap
3 IssuesEvent 2012-03-11 06:48:31 bootstrap
4 IssuesEvent 2012-03-11 06:52:50 bootstrap
5 IssuesEvent 2012-03-11 06:52:50 bootstrap
6 IssuesEvent 2012-03-11 06:52:50 bootstrap
7 IssueCommentEvent 2012-03-11 07:03:57 bootstrap
8 IssueCommentEvent 2012-03-11 07:03:57 bootstrap
9 IssueCommentEvent 2012-03-11 07:03:57 bootstrap
10 IssuesEvent 2012-03-11 07:03:58 bootstrap
11 IssuesEvent 2012-03-11 07:03:58 bootstrap
12 IssuesEvent 2012-03-11 07:03:58 bootstrap
13 WatchEvent 2012-03-11 07:15:44 bootstrap
14 WatchEvent 2012-03-11 07:15:44 bootstrap
15 WatchEvent 2012-03-11 07:15:44 bootstrap
16 …
Run Code Online (Sandbox Code Playgroud) 我正在尝试一些我认为在 R 中相当简单的东西,但给我带来了比我讨价还价更多的麻烦。我想使用 R 来定义基于多个标准的法术,同时忽略缺失的数据。然后,目标是使用该aggregate
命令计算跨法术的工资平均值。我怀疑TraMineR
包中提供的工具可用于完成此操作,但我很难弄清楚如何实现。
例如,给定以下数据:
Caseid Year Unemployed EmployerID occID indID Wage
1 1999 0 1 1 1 5.00
1 2000 NA NA NA NA NA
1 2001 NA NA NA NA NA
1 2002 0 1 1 2 6.00
2 1999 0 1 1 1 4.00
2 2000 0 1 1 1 5.00
2 2001 0 1 1 1 6.00
2 2002 1 1 1 1 6.00
3 1999 0 1 1 1 4.00 …
Run Code Online (Sandbox Code Playgroud) 我正在使用TraMineR包.我打印输出到CSV文件,如下所示:
write.csv(seqient(sequences.seq), file = "diversity_measures.csv", quote = FALSE, na = "", row.names = TRUE)
write.csv(seqici(sequences.seq), file = "diversity_measures.csv", quote = FALSE, na = "", row.names = TRUE, append= TRUE)
write.csv(seqST(sequences.seq), file = "diversity_measures.csv", quote = FALSE, na = "", row.names = TRUE, append= TRUE)
Run Code Online (Sandbox Code Playgroud)
可以在此处找到dput(sequences.seq)对象.
但是,这不会正确附加输出,但会创建此错误消息:
In write.csv(seqST(sequences.seq), file = "diversity_measures.csv", :attempt to set 'append' ignored
Run Code Online (Sandbox Code Playgroud)
另外,它只给我最后一个命令的输出,所以看起来它每次都会覆盖文件.
是否可以将所有列都放在一个CSV文件中,每个列都有一个列名(即熵,复杂性,湍流)