根据整数向量中数字的顺序出现来创建一组指标

埃德桑多夫

假设我有一个整数向量

x <- c(10, 1, 1, 4, 10, 10, 7, 7, 7)

我想基于此向量创建两组指标。对于其他向量y第一个指示符的1长度应等于x == 10,然后等于零。重要的是,它必须忽略10向量中稍后发现的任何其他内容例如,x上面给出的

y <- c(1, 0, 0, 0, 0, 0, 0, 0, 0)

而如果

x <- c(10, 10, 10, 1, 1, 5, 10, 7, 9)

然后

y <- c(1, 1, 1, 0, 0, 0, 0, 0, 0)

第二个指示符z应等于1序列结束后的第一个元素。给定上述x向量,我希望输出为:

z <- c(0, 1, 0, 0, 0, 0, 0, 0, 0)
z <- c(0, 0, 0, 1, 0, 0, 0, 0, 0)

使用一个向量算出另一个向量就很好了。鉴于用于计算序列的数字可能会在向量的后面出现,所以我还没有找到一种解决此问题的灵巧方法,因此对我而言,简单的相等性检查不起作用。

阿克伦

rle通过将那些“值”分配给FALSE,我们可以用来将不等于第一组10的值更改为0

+(inverse.rle(within.list(rle(x == 10), values[seq_along(values) > 1] <- FALSE)))
#[1] 1 0 0 0 0 0 0 0 0
+(inverse.rle(within.list(rle(x == 10), values[seq_along(values) > 1] <- FALSE)))
#[1] 1 1 1 0 0 0 0 0 0

对于第二种情况,使用来获取位置which并使用来创建逻辑向量%in%

library(data.table)
+( seq_along(x) %in% which(rleid(x == 10) > 1)[1])
#[1] 0 1 0 0 0 0 0 0 0

 +( seq_along(x) %in% which(rleid(x == 10) > 1)[1])
#[1] 0 0 0 1 0 0 0 0 0

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

查找向量中的第一组连续整数

到该点为止,将Value替换为向量中出现一组数字的次数

根据另一列中的一组相等数字在表(i ++)中插入数字

PHP中是否有任何语法或命令来检查数字是否在一组数字中?

正则表达式在一组数字中查找重复出现的数字集

从一组数字中创建一个递增数字的列表

如何在dart中随机分配一组固定数字的顺序?

如何计算一组单词以任何顺序出现在列中的次数?

根据它们的值确定一组列的顺序

在C ++中添加一组数字

在mysql中存储一组数字

在顺序无关紧要的R中创建列的唯一组合的df

用C语言查找一组数字的整数除数

对在 pandas DataFrame 中重复出现的一组数字进行分组

创建组中顺序出现的索引

根据位置将ArrayList修剪为一组数字

根据一组规则检查罗马数字的错误

使用Javascript根据总和对一组数字进行排序

在Java中创建一组数组

从熊猫系列中创建一组

在Rails中创建一组行

SpatialPolygons-根据坐标在R中创建一组多边形

根据 Dataframe 2 中存在的一组对值为键创建标志 - Python 问题

如何按字典顺序和数字顺序对一组数字排序?

从div中的一组数字中找出最高的数字

查找一组组中的首次出现

如何在多个子目录中按数字顺序执行同一组命令?

如何在go-lang中创建一组正态分布的数字,围绕特定数字设置

根据data.frame中的逻辑向量逐行创建唯一的组