gpt4 book ai didi

r - 计算 r 中向量中的序列数

转载 作者:行者123 更新时间:2023-12-02 01:07:00 25 4
gpt4 key购买 nike

R 的新手,我有一个看起来像数据的向量<- c(1, 2, 3, 9, 10, 11, 12, 29, 30, 31, 32, 33, 34)。我想计算连续值序列的数量。 IE。 1、2、3 是一个计数,9、10、11、12 是另一个计数,然后是 29、30、31、32、33 和 34,总计数为 3。

我目前正在尝试使用此循环,它将除最后一个值之外的所有顺序值替换为 NA(然后我可以删除 NA 并进行计数):

data<- c(1, 2, 3, 9, 10, 11, 12, 29, 30, 31, 32, 33, 34)
event_detect<- function (data) {
for (i in 1:length(data)){
if (data[(i+1)] == data[i]+1){
data[(i)]<-NA
}
}
}

但这会返回“需要 TRUE/FALSE 的地方缺少值”错误。我认为这可以在没有循环的情况下实现,但我无法找到解决方案。我知道 rle 可以对相等值的运行执行此操作,所以对于增加 1 的值,就像 rle 一样。

谢谢你的帮助

最佳答案

我们计算不为一的差异的数量并在该数字上加一:

sum(diff(data) != 1) + 1

这利用了 R 在算术运算中将逻辑值强制转换为数值。

关于r - 计算 r 中向量中的序列数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47082467/

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