如何查找相同的连续数字字符串

时间:2018-10-06 00:12:19

标签: r

我有以下数据框:

A <- c(0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1)
B <- c(1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0)
C <- c(0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0)
df <- data.frame(A, B, C)
> df
   A B C
1  0 1 0
2  1 1 0
3  1 1 0
4  1 1 0
5  1 0 0
6  0 0 1
7  0 0 1
8  1 0 1
9  1 0 1
10 1 1 1
11 0 1 1
12 0 1 1
13 1 1 0
14 1 1 0
15 1 0 0
16 1 0 0

我想写一个代码来知道每列中有多少个连续的1。我希望输出形式为数据框:

> Number_of_Strings_of_Consecutive_Ones
  A B C
1 3 2 1

我该怎么做?谢谢!

1 个答案:

答案 0 :(得分:2)

您可以使用rle

sapply(df, function(x) sum(rle(x)$values == 1))
#A B C
#3 2 1