gpt4 book ai didi

r - 将向量分割成 block ,直到事件发生

转载 作者:行者123 更新时间:2023-12-04 12:35:23 25 4
gpt4 key购买 nike

我有一个矢量 x <- c("H","H","T","H","T","T","H","H","H","H","T")从抛硬币开始。我想从上面的向量中构造一个带有两个变量(模式、长度)的数据框。

模式字段将类似于 {H H T, H T, T, H H H H T} 并且相应的长度将是 {2,1,0,4}

我的意图是计算连续的正面,直到硬币翻转中出现尾部。

最佳答案

给定向量

x <- c("H","H","T","H","T","T","H","H","H","H","T")

diff(c(0, as.integer(gregexpr("T", paste0(x, collapse = ""))[[1]]) ) ) - 1
# [1] 2 1 0 4

说明

将向量折叠为字符串
paste0(x, collapse = "")
## "HHTHTTHHHHT"

找到所有 T的位置秒
as.integer(gregexpr("T", paste0(x, collapse = ""))[[1]])
## [1] 3 5 6 11

数量 H T之间s 将是每个值之间的差值,减 1

附加前导 0并找出每个值之间的差异。
diff(c(0, as.integer(gregexpr("T", paste0(x, collapse = ""))[[1]]) ) ) - 1
[1] 2 1 0 4

关于r - 将向量分割成 block ,直到事件发生,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37126336/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com