我有以下数据框:
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
我该怎么做?谢谢!
答案 0 :(得分:2)
您可以使用rle
sapply(df, function(x) sum(rle(x)$values == 1))
#A B C
#3 2 1