首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在R中找到适合聚类分析的包

在R中找到适合聚类分析的包
EN

Stack Overflow用户
提问于 2020-05-25 17:15:36
回答 1查看 81关注 0票数 1

我试图在R中找到一个包,在这里我可以在数据集中找到超过给定阈值的集群。

我想知道的是集群的持续时间/大小以及每个集群的单个值。

例如(一个简单的):

我有一个数据向量,

10 8 6 14 14 14 5 11 12 11 16 20 6 8 8 6 15

大于9的集群是用粗体定义的,

10 8 6 14 14 7 14 5 11 12 8 11 16 20e 2116 8 8 6E 11215E 213

所以在这里,按顺序排列的集群大小是,

1,2,1,2,4,1

我想要R做的是以不同的有序向量返回簇。

代码语言:javascript
复制
[1] 10
[2] 14 14
[3] 14
[4] 11 12
[5] 11 11 16 20
[6] 15

例如,是否有这样的包或带有if语句的一段代码也会有所帮助。

干杯

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-25 17:27:26

data.table::rleid函数在这方面运行良好:

代码语言:javascript
复制
Filter(function(a) a[1] > 9, split(vec, data.table::rleid(vec > 9)))
# $`1`
# [1] 10
# $`3`
# [1] 14 14
# $`5`
# [1] 14
# $`7`
# [1] 11 12
# $`9`
# [1] 11 11 16 20
# $`11`
# [1] 15

如果您不想仅仅为此加载data.table包,那么https://stackoverflow.com/a/33509966的基本-R方法

代码语言:javascript
复制
myrleid <- function(x) {
  rl <- rle(x)$lengths
  rep(seq_along(rl), times = rl)
}
Filter(function(a) a[1] > 9, split(vec, myrleid(vec > 9)))
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62007395

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档