将单列拆分为四列并计算 R 中的重复模式

Bal*_*pan 2 string r dplyr

该项目的目的是了解在查看对象时如何获取信息。想象一个对象具有相同的元件abcdef。一个人可能会看着a并移动到b等等。现在,我们希望绘制并了解该人如何在给定刺激的不同元素之间导航。我有在单列中捕获此移动的数据,但我需要将其拆分为几列以获取导航模式。请找到下面给出的示例。

我从数据框中提取了列。现在必须根据其特性将其分为四列。

a <- c( "a", "b", "b", "b", "a", "c", "a", "b", "d", "d", "d", "e", "f", "f", "e", "e", "f")
a <- as.data.frame(a)

Run Code Online (Sandbox Code Playgroud)

预期输出

from   to   countfrom   countto

a      b      1           3
b      a      3           1
a      c      1           1
c      a      1           1
a      b      1           1
b      d      1           3
d      e      3           1      
e      f      1           2
f      e      2           2
e      f      2           1 
Run Code Online (Sandbox Code Playgroud)

注意:我曾经dplyr从数据框中提取。

the*_*ail 5

使用rle让每个字母的相对运行,然后拼凑一起:

r <- rle(a$a)
## or maybe `r <- rle(as.character(a$a)` depending on your R version
setNames(
    data.frame(lapply(r, head, -1), lapply(r, tail, -1)),
    c("countfrom","from","countto","to")
)
##   countfrom from countto to
##1          1    a       3  b
##2          3    b       1  a
##3          1    a       1  c
##4          1    c       1  a
##5          1    a       1  b
##6          1    b       3  d
##7          3    d       1  e
##8          1    e       2  f
##9          2    f       2  e
##10         2    e       1  f
Run Code Online (Sandbox Code Playgroud)