如何在 R 中构建计数填充矩阵

How to build counts filled matrix in R

我正在使用 R 进行分析项目。作为数据准备模块的一部分,我遇到了一项特定任务。我有一个分类列和一个响应变量,如下所示: .

我需要构建如下顺序填充。它应该构造如下所示:

逻辑如下: 考虑步骤 =3。从实际数据来看,前 3 行 a、b、c 和 yes/no 列有一个 'Yes'。所以结果矩阵中的a,b,c,d,e,f各自的值用Yes填充为1,1,1,0,0,0。下一步有b,c,b,所以得到的矩阵用Yes填充为0,2,1,0,0,0。应重复此过程,直到源数据中的最后一个序列。

有没有可能构造上面的。任何人都可以帮助构建此逻辑以使用 R.

构建上述结果矩阵

提前致谢。

使用来自动物园的 rollapplytableany:

library(zoo)

step <- 3

data.frame(
     rollapply(DF$Features, step, table), 
     "Yes/No" = ifelse(rollapply(DF$"Yes/No" == "Yes", step, any), "Yes", "No"),
       check.names = FALSE
)

给予:

  a b c d e f Yes/No
1 1 1 1 0 0 0    Yes
2 0 2 1 0 0 0    Yes
3 0 1 1 1 0 0     No
4 0 1 0 1 1 0    Yes
5 1 0 0 1 1 0    Yes
6 1 0 0 0 1 1    Yes

备注

可重现形式的输入DF

DF <- data.frame(Features = c("a", "b", "c", "b", "d", "e", "a", "f"),
 "Yes/No" = c("No", "Yes", "No", "No", "No", "Yes", "No", "No"), 
  check.names = FALSE)