Fra*_*fka 4 simulation r coin-flipping
我有一系列的1和0,我想计算交替的数量.例如
x <- rbinom(10, 1, 1/2)
> x
[1] 0 0 1 1 1 1 1 0 1 0
Run Code Online (Sandbox Code Playgroud)
因此,我想计算(在R中)序列从1到0交替(或翻转)的次数.在上述顺序中,交替次数(手动计数)为4.
Jor*_*eys 12
你可以使用diff():
> x <- rbinom(10,1,1/2)
> x
[1] 0 0 0 1 1 1 1 0 1 0
> sum(diff(x)!=0)
[1] 4
Run Code Online (Sandbox Code Playgroud)
rle函数将计算向量中相同值的"运行"数.因此,此向量的长度(减1)为您提供了更改的数量:
> x
[1] 0 0 0 1 1 1 1 0 1 0
> rle(x)
Run Length Encoding
lengths: int [1:5] 3 4 1 1 1
values : num [1:5] 0 1 0 1 0
> length(rle(x)$lengths)-1
[1] 4
Run Code Online (Sandbox Code Playgroud)
可能比diff()方法更快或更慢,但如果需要它还可以为您提供运行长度...
| 归档时间: |
|
| 查看次数: |
1657 次 |
| 最近记录: |