r - R - 通过向量计数并刷新某个值?
问题描述
假设我有一个向量
vec <- c(3,0,1,1,0,3,0,1,3,0,0,0,3)
我希望能够使用值 3 作为刷新点来计算这个向量。所以,我想要的输出是
vec out
[1,] 3 1
[2,] 0 2
[3,] 1 3
[4,] 1 4
[5,] 0 5
[6,] 3 1
[7,] 0 2
[8,] 1 3
[9,] 3 1
[10,] 0 2
[11,] 0 3
[12,] 0 4
[13,] 3 1
我将如何在 R 中执行此操作,最好不使用循环?
解决方案
使用base R
,您可以:
ave(vec, cumsum(vec == 3), FUN = seq_along)
[1] 1 2 3 4 5 1 2 3 1 2 3 4 1
推荐阅读
- angular - Angular如何修补表单数组中的值
- java - C# 中的 BigInteger.intValue() 等价物
- python - 如何使用python发送电子邮件
- swift - 是什么导致此代码中出现“EXC_Bad_Instruction”错误?
- angular - 理解 Angular RouterLink 选择器规范中的 ":not" 语法
- angular - TypeError:无法从 kendo 库组件中设置未定义的属性“forceExpand”
- sql - 在sql中搜索RFID的最快方法
- python - ModuleNotFoundError:没有在同一个文件夹项目中命名的模块
- xamarin - 从 Gstreaming 到 VLC 的 udp 流式传输不起作用
- python - pyautogui 在知道 2 个角的特定区域创建屏幕截图