检测二进制序列中的不规则性

时间:2018-01-24 06:46:59

标签: r

在我的数据集中,每个人都有11个问题的答案。答案存储为0(错误)和1(右)。所以,我需要检测从0到1的切换点。所以,可能的情况:

example

id 1 2 3 4是常规响应,因为它们有一个切换点或没有切换点。

id 5和6是不规则的响应,因为它们有两个切换点。

所以,我需要一个列(一致)并标记常规(一个切换点或无)和不规则(多个切换点)行。

任何帮助都将受到高度赞赏!

1 个答案:

答案 0 :(得分:1)

假设您的数据集是data.frame,您可以使用每行diff的abs来识别切换。然后将开关数量相加以获得Consistent列

DF$Consistent <- apply(DF, 1, function(x) as.numeric(sum(abs(diff(x))) <= 1))

数据:

DF <- as.data.frame(rbind(c(0,0,0,1,1), c(1,1,0,0,0), c(1,1,1,1,1), c(0,0,0,0,0), c(1,0,1,0,0), c(0,0,0,1,0)))