首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用NoData分割数字向量

用NoData分割数字向量
EN

Stack Overflow用户
提问于 2019-10-03 09:12:30
回答 2查看 34关注 0票数 2

我有一个带有一些NoData值的数字向量。我如何使用NoData作为断点将其分割成向量?

示例数据:

代码语言:javascript
复制
set.seed(1)    
a <- as.integer(runif(30, 0, 10))
a[1] <- NaN
a[10] <- NaN

    > a
 [1] NaN   3   5   9   2   8   9   6   6 NaN   2   1   6   3   7   4   7   9   3   7   9   2   6   1   2   3   0   3   8   3

因此,输出将按连续向量对数据进行分组:

代码语言:javascript
复制
[1] 3 5 9 2 8 9 6 6

[1] 2 1 6 3 7 4 7 9 3 7 9 2 6 1 2 3 0 3 8 3
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-10-03 09:14:41

我们可以使用split

代码语言:javascript
复制
split(a, cumsum(is.na(a)))

但是,每个列表的第一个元素可以是NA,它可以用sapply删除。

代码语言:javascript
复制
sapply(split(a, cumsum(is.na(a))), function(x) x[!is.na(x)])
票数 1
EN

Stack Overflow用户

发布于 2019-10-03 16:08:45

带有rleid的选项

代码语言:javascript
复制
libary(data.table)
grp <- rleid(is.nan(a))
split(a[!is.nan(a)], grp[!is.nan(a)])
#$`2`
#[1] 3 5 9 2 8 9 6 6

$`4`
#[1] 2 1 6 3 7 4 7 9 3 7 9 2 6 1 2 3 0 3 8 3
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58215894

复制
相关文章

相似问题

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