如何在R Studio中重组数据集以构建马尔可夫转移矩阵?
解决方案:将长格式行为数据转宽格式(用于马尔可夫转移矩阵)
要把你的长格式数据集转换成每列对应一个参与者、每行对应行为顺序的宽格式,有两种简单的实现方式:
方法1:用tidyverse工具(推荐,代码更易读)
先加载tidyverse包,然后用pivot_wider完成转换:
library(tidyverse) dat2 <- dat %>% mutate(participant = str_c("participant", participant)) %>% pivot_wider(names_from = participant, values_from = behavior)
方法2:用Base R原生函数
如果不想安装额外包,用R自带的reshape函数也能实现:
dat2 <- reshape(dat, idvar = "eventorder", timevar = "participant", direction = "wide", sep = "") # 调整列名到期望格式 colnames(dat2) <- sub("behavior.", "participant", colnames(dat2)) # 移除eventorder列(匹配目标结构) dat2 <- dat2[, -1]
两种方法得到的dat2结构都和你给出的目标一致,完全可以直接用于马尔可夫转移矩阵的构建。
内容的提问来源于stack exchange,提问作者JatNTU
相关产品推荐
相关产品推荐

