r - 我如何在 R 中通过 2 列找到连接值
问题描述
我有一个包含 2 列的数据集。我需要找到dt$source == "learn4
R 中连接的单词。
输出是一个向量 c("learn2", "learn1", "learn")
首先我们 "learn4"
连接到"learn2"
,然后 "learn2"
连接到"learn1"
,然后 "learn1
连接到"learn"
我想不出任何办法来解决这个问题。有什么建议吗?
dt <- data.frame(source = c("learn","learn1", "disc","learn2","learn3","disc1","lb","learn4"),
new = c("learn","learn","disc","learn1","learn1","disc","lb","learn2"))
dt
source new
1 learn learn
2 learn1 learn
3 disc disc
4 learn2 learn1
5 learn3 learn1
6 disc1 disc
7 lb lb
8 learn4 learn2
解决方案
如何创建图表。
library(igraph)
my.graph <- graph.data.frame(dt)
plot(my.graph) #not necessary, but have a look
现在您可以使用以下命令找到特定节点的所有邻居ego
:
names(ego(my.graph, length(V(my.graph)), "learn4")[[1]])
[1] "learn4" "learn2" "learn1" "learn" "learn3"
请注意,您说您请求的输出不包括learn3
,但learn1
连接到learn3
第 5 行。
一种解决方案可能是mode = "out"
按照@thelatemail 的建议在评论中包含:
names(ego(my.graph, length(V(my.graph)), "learn4", mode="out")[[1]])
[1] "learn4" "learn2" "learn1" "learn"
推荐阅读
- python - Python txt文件操作
- pandas - ParseError:错误标记数据。C 错误:预计第 224599 行中有 50 个字段,看到 51
- neo4j - Neo4J 可以接受冗余建模
- python - 在树中查找父节点
- python - 为什么第 14 行打印两次
- r - 如何根据 R 中的特定模式过滤 DataFrame?
- laravel - 如何从 laravel 的数据库中检索电子邮件凭据?
- angular - 显示 dataSource 表等待 mouseEvent
- excel - Power App 出现问题(将数据从 Power App 加载到 Excel)
- r - 根据数据帧 R 上连续第一个值的条件替换第二个值