【发布时间】:2020-05-24 19:06:30
【问题描述】:
我有一个包含三列的数据框,其信息类似于下面给出的数据框。现在我希望根据a 列中的信息提取信息搜索模式。
基于少数开发人员(@thelatemail 和@David T)的支持,我能够使用rle 函数识别模式,请参阅此处-using rle function to identify pattern。现在,我希望继续并将分组信息添加到提取的模式中。我尝试使用 dplyr do 函数 - 请参阅下面的代码。但是,这不起作用。
还提供了示例数据和所需的输出以供您参考。
##mycode that produces error - needs to be fixed
test <- data%>%
group_by(b, c)%>%
do(., data.frame(from = rle(.$a)$values), to = lead(rle(.$a)$values))
##code to create the data frame
a <- c( "a", "b", "b", "b", "a", "c", "a", "b", "d", "d", "d", "e", "f", "f", "e", "e")
b <- c(rep("experiment", times = 8), rep("control", times = 8))
c <- c(rep("A01", times = 4), rep("A02", times = 4), rep("A03", times = 4), rep("A04", times = 4))
data <- data.frame(c,b,a)
## desired output
c b from to fromCount toCount
<chr> <chr> <int> <int>
1 A01 experimental a b 1 3
2 A02 experimental a c 1 1
3 A02 experimental c a 1 1
4 A02 experimental a b 1 1
5 A03 control d e 3 1
6 A04 control f e 2 2
与之前的帖子here 相比,由于我们将分组应用于a 列,因此信息被压缩了。
【问题讨论】: