37得票6回答
是否有与data.table :: rleid相当的dplyr等效函数?

data.table提供了一个很方便的函数rleid,用于跑长度编码:library(data.table) DT = data.table(grp=rep(c("A", "B", "C", "A", "B"), c(2, 2, 3, 1, 2)), value=1:10) rleid(DT$...

25得票3回答
在连续的数值运行中创建计数器

我希望在相同值的每次运行内创建一个顺序编号,就像计数器一样,一旦当前行的值与前一行不同,计数器就会重新开始。 请参考以下输入和期望输出的示例。dataset <- data.frame(input = c("a","b","b","a","a","c","a","a","a","a",...

19得票2回答
在使用dplyr时,使用rle按照连续的值进行分组。

在R中,我想根据变量x的运行情况对数据进行分组,并对其进行汇总(即数据的每个分组对应于数据的一个子集,其中连续的x值相同)。例如,考虑以下数据框,我想计算每个x运行中的平均y值: (dat <- data.frame(x=c(1, 1, 1, 2, 2, 1, 2), y=1:7)) ...

18得票7回答
Matlab中的逐元素数组复制

假设我有一个一维数组:a = [1, 2, 3]; 是否有Matlab内置的函数,可以将数组和整数 n 作为输入,然后将数组中的每个元素复制n次? 例如调用replicate(a, 3)应返回[1,1,1,2,2,2,3,3,3]。 请注意,这与repmat完全不同。 我当然可以通过对每...

16得票5回答
数组元素的重复副本:MATLAB中的游程解码

我正在尝试使用'values'数组和'counter'数组向数组中插入多个值。例如,如果:a=[1,3,2,5] b=[2,2,1,3] 我希望得到某个函数的输出结果。c=somefunction(a,b) 成为c=[1,1,3,3,2,5,5,5] 如果a(1)重复b(1)次,a(2)重复b...

13得票4回答
MATLAB中的运行长度解码

为了巧妙地使用线性索引或 accumarray,我有时感到需要基于run-length encoding生成序列。由于没有内置函数可以完成此操作,因此我想询问解码RLE编码序列的最有效方法。 要求: 为了使这个比较更公平,我想为该函数制定一些规格: 如果指定了相同长度的可选第二参数value...

11得票4回答
按组创建计数器,用于统计FALSE和NA之间连续出现TRUE的次数

我有点难题要解决。 我有一个data.frame,其中TRUE的连续区域被一个或多个FALSE或NA的连续区域分隔开: group criterium 1 A NA 2 A TRUE 3 A TRUE 4 A ...

11得票2回答
无损层次化游程编码

我希望能够通过嵌套方式类似于运行长度编码来进行总结而不是压缩。 例如,我想要将 ABCBCABCBCDEEF 转换为(2A(2BC))D(2E)F。 我不关心在两个相同的可能嵌套之间选择哪个选项。例如,ABBABBABBABA 可以是 (3ABB)ABA 或 A(3BBA)BA,并且它们具...

11得票6回答
MATLAB根据长度向量重复数字

有没有向量化的方法可以做到以下操作?(通过示例说明):input_lengths = [ 1 1 1 4 3 2 1 ] result = [ 1 2 3 4 4 4 4 5 5 5 6 6 7 ] 我已经将input_lengths间隔开,以便更容易理解...

11得票2回答
查找连续值的起始和结束位置/索引

问题:给定一个原子向量,找到向量中连续元素的起始索引和结束索引。 具有连续元素的示例向量:x = rev(rep(6:10, 1:5)) # [1] 10 10 10 10 10 9 9 9 9 8 8 8 7 7 6 rle() 的输出:rle(x) # Run Len...