gpt4 book ai didi

r - 如何在 R 中生成转换类型表?

转载 作者:行者123 更新时间:2023-12-02 09:16:51 26 4
gpt4 key购买 nike

我有一些数据,其中有许多不同的 ID 以及它们在不同时间(t1、t2、t3 等)的状态列表,我想生成一个表,其中提供有关不同类型的信息发生的状态变化,因此示例数据看起来像这样(复制如下)。

  x  y  z
x 0 2 0
y 1 2 1
z 1 0 2

例如,这将显示 x 更改为 y 两次,y 更改为 x 一次。有谁知道我如何在 R 中做到这一点?

示例数据:

id <- c('a','b','c')
t1 <- c('x','y','z')
t2 <- c('y','y','z')
t3 <- c('z','y','x')
t4 <- c('z','x','y')
df <- cbind(id, t1, t2, t3, t4)

最佳答案

实现此目的的一种方法是使用 igraph。稍微棘手的一点是以图形格式获取它,但完成后可以提取邻接矩阵。

# Split matrix so that each row is a `path`
lst <- split(df[,-1], 1:nrow(df))
unique_nodes <- unique(c(df[,-1]))

library(igraph)

# Create empty graph and name nodes
g <- make_empty_graph(n=length(unique_nodes))
V(g)$name <- unique_nodes

# Read in each path
for (i in lst) {
g <- g + path(i)
}

# Output adjacency matrix
as_adj(g, sparse=FALSE)
# x y z
#x 0 2 0
#y 1 2 1
#z 1 0 2

关于r - 如何在 R 中生成转换类型表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46300747/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com