r - 如何根据不断变化的唯一值对 R 中的向量进行顺序编号?
问题描述
假设我有以下向量:
dat <- c(1,1,1, 2,2,2, 3,3, 4,4,4,4) <- (I added spaces to better see grouping)
我想1
为dat
. 期望的结果是:
1 2 3 1 2 3 1 2 1 2 3 4 <- (I added spaces to better see grouping)
我的尝试:
unlist(
lapply(unique(dat), function(x)
seq(1,length(which(dat==x)==T),1)
)
)
[1] 1 2 3 1 2 3 1 2 1 2 3 4
有没有更直接的方法来做到这一点?
解决方案
是的:
sequence(rle(dat)$lengths)
推荐阅读
- bash - 为什么“哈希/bin/ls”什么都不做?
- bash - 使用 BASH 计算给定空格分隔数字数组中所有可能的总和组合
- php - 通过 php curl 下载文件时显示文件大小
- python - 结合 ListView 和 DetailView
- scala - 如何禁用 Heroku 上的 HTTP 请求和/或自动重定向到 HTTPS?
- reactjs - React - 窗口调整大小后获取 element.getBoundingClientRect()
- python - 如何修改已打印的文本?
- terraform - Terraform:基于 .tfvars 中的变量有条件地创建资源
- c - 访问冲突写入位置 - 二维字符数组
- excel - 试图保护具有多个用户的工作簿免受用户 2、3 等的影响