问题标签 [tidygraph]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
r - 用 tidygraph 从孩子那里传播价值
我有一棵在属级别注释的树(即每片叶子都有一个名字),只要孩子们有相同的属,我想传播树枝/边缘叶子的颜色,就像在这个情节中一样:
我的树在这里(对不起,dput
不起作用......),他看起来像这样:
我可以使用此代码打印树,但如您所见,边缘颜色保持在叶子附近。
映射此博客文章的搜索部分中有一个代码,但它不适用于我的数据,我不明白为什么......
mutate_impl(.data, dots) 中的错误:评估错误:无法将值强制转换为字符 (1)。
在 Marco Sandri 回答后编辑
mutate(Genus = as.character(Genus))
没有更多错误消息,但 Genus 没有正确传播。例如,从右侧开始查看第三个和第四个节点:父节点应该是NA
...(请注意,它在博客文章图中也不起作用)。
r - 如何在ggraph中隐藏未连接的节点
给定以下示例代码,
如何隐藏没有边缘进入或离开节点的节点?
r - 简化树删除节点
我有一个可以被认为是树的非循环图。这是一个简化的示例:
现实生活中的例子可能稍微复杂一些,因为我可能有多个从叶子到根的路径(所有这些路径都是非循环的)。
我想通过删除中间节点来简化图形,如下所示:
K=0
在最极端的情况下(我们称之为“k = 0”简化)我会枚举所有叶子,确保它们通过深度优先搜索连接到根,然后删除所有中间连接,有效地将每个叶子连接到根。
K=-1
下一级简化(比如“k=-1”)我想从至少有一个叶子孩子的节点开始,然后重复相同的过程。简化后,所有中间节点都会被移除:
K=-2
下一步的简化对这个图没有意义,因为不会修改边,也不会删除节点。
如何在 R 中使用igraph
/对其进行编码?tidygraph
r - 绘制特定 geom_node_text 的标签
我正在尝试绘制网络图并仅显示 geom_node_text 的标签,这些标签的中心度得分高于特定阈值。我的代码如下:
我遇到以下错误:
我的数据如下所示:
r - 通过使用 tibble 中不同行的值来改变值
我想计算一个节点到根的距离dtr
。我所拥有的只是一个向量,其中包含每个节点的父节点 ID rel
(在此示例id == 7
中为根节点):
最后我正在寻找这个结果:
tmp$dtr
[1] 2 1 3 2 3 4 0 1 3 2 1 1
到目前为止,我能够编写以下算法,直到我在尝试引用代码中的不同行时卡住了。
该算法应该像这样工作(伪代码):
- 如果不是根,则递增
dtr
:if(!equals(tid,trel)): dtr = dtr+1
- 更改
tid
为trel
:tid = trel
- 更改
trel
为rel
其中的值id == trel
- 如果有任何
!equals(tid,trel)
GOTO 1.,否则 END
首先,我添加了 2 个辅助列来存储临时信息:
算法的前两个步骤是这样工作的:
第三步我不确定....我尝试使用以下代码来实现它,但这不起作用:
结果(当然)是错误的:
tmp$rel
[1] 7 7 7 7 7 7 7 7 7 7 7 7
但为什么不呢?(3.第一次运行时应该是正确的解决方案):
[1] 2 7 2 7 2 4 7 7 10 8 7 7
第 4 步是通过检查我在 trel 中是否有多个唯一值来完成的:
因此,完整的算法应该看起来像这样:
知道如何解决这个问题或更简单的解决方案吗?提前致谢!
r - 如何将 as_tbl_graph() 与 group_by() 一起使用?
这是我最近遇到的关于计算图深度的问题的后续问题。这涉及到 tidyverse 和 tidygraph。在阅读 tidygraph 之后,我觉得我应该好好尝试一下,但我在工作流程中遇到了一个新问题。
使用dplyrgroup_by()
中的动词为每个组创建图形时,tidygraph 中的函数不是我想要的,但我找不到按预期设置和值的方法。这是一个可重现的示例:guess_df_type()
as_tbl_graph()
from
to
结果是:
节点不是取自 token 列,而是取自id_head
和id_sec
。
在进一步研究之后,我将其重命名为token
and ,这至少解决了第一个问题:head
from
to
结果:
让我进一步阐述我遇到的问题。当我尝试在图中使用 group_by(id_head,id_sec) 时,结果是一个错误:
grouped_df_impl(data, unname(vars), drop) 中的错误:
列
id_head
未知
所以无论哪种方式,我都不明白如何将 group_by 与 tidygraph 一起使用。很感谢任何形式的帮助!提前致谢。
另外,很抱歉使用 igraph 作为标签,它应该是 tidygraph,但它还不存在。tidygraph 是建立在 igraph 和 tidyverse 之上的。
r - Reshaping a data frame with a list column produced by tidygraph
I am working with the tidygraph
package and try to find a "tidy" solution
for the example below. The problem is not really tied to tidygraph
and more about data wrangling but I think it is interesting for people working with this package.
In the following code chunk I just generate some sample data.
The resulting data.frame
looks as follows:
Now to my actual problem. I want do apply a function to each element in the column graph
. The result is simply a named vector.
The first thing I do not like is the subsetting by $
. Is there a better way?
Next, I want to reshape this result into only one data.frame with 3 columns. One column for name
(the name attribute of the vectors), one for group
(the name attribute of the list) and one for the number
(the elements of the vectors).
I tried melt
from the reshape2
package.
It works decently but the names are lost and as I read it, one should use
tidyr
instead. However, I could not get gather
to work because only data.frames
are accepted.
Another option would be unlist
:
Here the group and the name are in the names attribute and I would have to recover them with regular expressions.
I am pretty sure there is an easy way I just could not think of.
r - R中的3D管道/管图 - 创建树根图
我正在尝试在 R 中创建模拟树根的 3D 图。这是一个根系统随时间增长的示例:
这本质上是一个 3D 圆柱网络,其中圆柱直径(以及可选的颜色)表示根的大小。可用数据包括:
- 根质心的 x, y, z
- “父”根的方向(例如 +x、-x、+y、-y、+z、-z),尽管可以通过几种不同的方式捕获此信息,包括通过计算父级的 x、y、z直接在绘图之前。
- 根的大小
示例 3D 数据在这里,但这是我第一次尝试在 2D 中使用ggplot2::geom_spoke
:
我更喜欢基于ggplot2
框架的解决方案,但我意识到ggplot2
. ggraph
一种有趣的方法可能是通过和tidygraph
包创造性地利用网络图的概念。据我所知,虽然这些包仅在 2D 中运行,但他们的开发人员也有一些有趣的 3D 相关想法,也可以应用。
中的rgl
库似乎是 R 中 3D 绘图的首选,但rgl
解决方案似乎要复杂得多,并且缺乏 的其他好处ggplot2
,例如示例中的按年份分面,轻松调整比例等。
示例数据在这里:
r - tidygraph 和 igraph - 从数据帧差异构建图形
我可以毫无问题地从两个数据帧在 igraph 中构建图形对象。当我尝试在 tidygraph 中做同样的事情时,我得到了错误。让我演示一下。首先我加载我的源数据(来自留言板的数据):
接下来,我创建一个唯一的节点列表(在留言板上发布内容的人):
然后,我的边缘列表(通过讨论线程(主题)连接的人):
使用 igraph 我可以创建这个图形对象:
这看起来不错。现在我尝试对 tidygraph 做同样的事情:
哎呀!但是,当我将 igraph 对象导入 tidygraph 时:
所有作品!到底是怎么回事?请帮忙。
r - Tidygraph:在父级计算子摘要
使用 R 中的 tidygraph 包,给定一棵树,我想计算树中每个节点的每个直接子节点的值的平均值、总和、方差......。
我的直觉是使用map_bfs_back_dbl
或相关并尝试修改帮助示例,但被卡住了
对于上述内容,我想要value
树中每个父级的所有直接、第一级子级的平均值。
更新:: 我试过这种方法(计算子属性的方差):
这是该死的:
我想看到的是这样的:
它将(第一个)“var”值移动到由“父”值标识的节点。帮助?建议?
编辑:这就是我最终要做的事情:
感觉不是很整洁,但似乎工作。开放优化。