将数字的向量转换为R中的连续整数

李杰

我有一个整数向量,x <- c(5, 5, 4, 4, 4, 8, 8, 8, 8, 5, 5, 9, 4, 4, 5, 5)想要创建一个相同长度的新向量。这个新向量从1开始,如果in的值x与前一个不变,则该值保持不变只要的值发生变化,该值应增加1 x因此,理想的结果是1 1 2 2 2 3 3 3 3 4 4 5 6 6 7 7换句话说,结果是中的运行的标签x

我现在有一个for循环,如下所示。但是我想知道是否有某些功能或矢量化的方式来做到这一点。

x <- c(5, 5, 4, 4, 4, 8, 8, 8, 8, 5, 5, 9, 4, 4, 5, 5)
n <- length(x)
y <- rep(NA, n)
y[1] <- 1
for (i in 2:n) {
  if (x[i] == x[i - 1]) {
    y[i] <- y[i - 1]
  }
  else {
    y[i] <- y[i - 1] + 1
  }
}
> y
 [1] 1 1 2 2 2 3 3 3 3 4 4 5 6 6 7 7
tmfmnk

一种选择是:

cumsum(c(0, diff(x)) != 0) + 1

 [1] 1 1 2 2 2 3 3 3 3 4 4 5 6 6 7 7

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将粘贴的数字转换为r中的数字向量

来自分类Dev

使用 STL 将数字向量转换为整数

来自分类Dev

将向量转换为R中的日期

来自分类Dev

将数字向量拆分为R中的连续块

来自分类Dev

如何将列中的非连续整数转换为熊猫中的连续整数

来自分类Dev

将R命令行参数转换为整数向量

来自分类Dev

如何防止R将日期向量强制转换为数字?

来自分类Dev

R将数字向量转换为跳过索引

来自分类Dev

如何防止R将日期向量强制转换为数字?

来自分类Dev

将二进制整数向量转换为数字向量

来自分类Dev

将日期组转换为连续的整数

来自分类Dev

将矩阵中的每一列从数字转换为R中的整数

来自分类Dev

如何将非连续数字转换为连续数字?

来自分类Dev

将数字转换为R中的日期

来自分类Dev

R中的整数向量是数字向量吗?

来自分类Dev

使用C中的数组将整数输入转换为数字

来自分类Dev

使用 Python 将文件中的数字转换为整数

来自分类Dev

将AST节点转换为向量/数字

来自分类Dev

如何将整数字符串转换为充满int的向量?

来自分类Dev

如何将整数字符串转换为充满int的向量?

来自分类Dev

将罗马数字转换为R中的数字

来自分类Dev

将书面数字转换为R中的数字

来自分类Dev

将罗马数字转换为R中的数字

来自分类Dev

将字符串向量转换为整数向量

来自分类Dev

Clojure - 将字符串转换为整数向量的向量

来自分类Dev

如何将向量转换为R中的列表?

来自分类Dev

将向量列表转换为R中的数据帧

来自分类Dev

将日期向量转换为R中的儒略日

来自分类Dev

如何通过R中的名称将向量转换为矩阵?