作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个向量,例如c(1, 3, 4, 5, 9, 10, 17, 29, 30)
,并且我想将形成规则的连续序列(即加1)的``邻居''元素组合在一起,在一个衣衫resulting的向量中导致:
L1:1
L2:3、4、5
L3:9,10
L4:17
L5:29,30
(前C程序员的)天真的代码:
partition.neighbors <- function(v)
{
result <<- list() #jagged array
currentList <<- v[1] #current series
for(i in 2:length(v))
{
if(v[i] - v [i-1] == 1)
{
currentList <<- c(currentList, v[i])
}
else
{
result <<- c(result, list(currentList))
currentList <<- v[i] #next series
}
}
return(result)
}
最佳答案
大量使用一些R习惯用法:
> split(v, cumsum(c(1, diff(v) != 1)))
$`1`
[1] 1
$`2`
[1] 3 4 5
$`3`
[1] 9 10
$`4`
[1] 17
$`5`
[1] 29 30
关于r - 如何将向量分成连续序列组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5222061/
我是一名优秀的程序员,十分优秀!