【发布时间】:2021-06-03 06:49:23
【问题描述】:
所以我有这个向量:
a = sample(0:3, size=30, replace = T)
[1] 0 1 3 3 0 1 1 1 3 3 2 1 1 3 0 2 1 1 2 0 1 1 3 2 2 3 0 1 3 2
我想要的是一个向量列表,其中包含由 n 个 0 分隔的所有元素。所以在这种情况下,n = 0(连续值之间不能有任何 0),这将给出:
res = c([1,3,3], [1,1,1,3,3,2,1,1,3], [2,1,1,2]....)
但是,如果我将其设置为 2,我想灵活地控制 n 参数,例如:
b = c(1,2,0,3,0,0,4)
仍然会产生这样的结果
res = c([1,2,3],[4])
在尝试计算 0 的数量时,我尝试了很多在 for 循环中使用 while 循环的方法。但我就是做不到。
更新
我尝试在此处以更真实的环境发布问题: Flexibly calculate column based on consecutive counts in another column in R
感谢大家的帮助。以我有限的知识,我似乎无法将您的帮助付诸实践..
【问题讨论】:
-
为了能够复制您的
sample数据,请使用set.seed。也就是说,我认为你的向量'b'足以证明问题 - 只需在整个过程中使用它;)而且,每当使用“连续”这个词时,它闻起来rle。检查一下! -
这可能需要专注于特定的编程问题,您应该在 Stack Overflow 上添加您尝试成为 on-topic 的代码。
标签: r list for-loop while-loop