首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在配对样本中计算职级数。

在配对样本中计算职级数。
EN

Stack Overflow用户
提问于 2016-05-03 02:30:57
回答 1查看 61关注 0票数 0

从本质上说,我得到了一个配对样本,比如:

代码语言:javascript
运行
复制
X = c(14, 5, 2, 8 , 9, 10)

Y = c(7, 3, 4, 13, 11, 12)

如果我对这两个样本进行排序和配对,可以使用什么函数来记录Z中的级别数?

代码语言:javascript
运行
复制
Z = c(2, 3, 4, 7, 8, 9, 10, 11, 12, 13)

所以Z现在

代码语言:javascript
运行
复制
Z = (X, Y, Y, Y, X, X, X, Y, Y, Y, X)

如何计算X-运行的次数,在本例中是3种大小的1、2和1,我尝试过rle()函数,但我不知道如何返回不同的X和Y

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-03 02:58:13

要获取Z中每个值的运行次数,您可以使用rle(),首先通过查找Z的哪些值在X or Y中,然后将其再次添加到属于TRUE的值上。

代码语言:javascript
运行
复制
rle(Z %in% X)$lengths[rle(Z %in% X)$values]
#[1] 1 3
rle(Z %in% Y)$lengths[rle(Z %in% Y)$values]
#[1] 3 3

正如@docendo弟子所指出的,它可以写成

代码语言:javascript
运行
复制
with(rle(Z %in% X), lengths[values])
with(rle(Z %in% Y), lengths[values])

哪里

代码语言:javascript
运行
复制
Z %in% X ## gives
TRUE FALSE FALSE FALSE  TRUE  TRUE  TRUE FALSE FALSE FALSE

因此,在rle向量上使用TRUE/FALSE给出我们的运行每个TRUE/FALSE

代码语言:javascript
运行
复制
rle(Z %in% X)  ## gives
    Run Length Encoding
  lengths: int [1:4] 1 3 3 3
  values : logi [1:4] TRUE FALSE TRUE FALSE

因此,我们可以分别使用lenghtsvalues组件,并将lenghts中的values == TRUE子集

数据

代码语言:javascript
运行
复制
X <- c(14, 5, 2, 8 , 9, 10)
Y <- c(7, 3, 4, 13, 11, 12)
Z <- c(2, 3, 4, 7, 8, 9, 10, 11, 12, 13)
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36994642

复制
相关文章

相似问题

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