我基本上给了一个配对样本说:
Z = c(2, 3, 4, 7, 8, 9, 10, 11, 12, 13)
如果我对这两个样本进行排序和配对说Z哪个函数可以用来记录Z中的等级数?
Z = (X, Y, Y, Y, X, X, X, Y, Y, Y, X)
所以Z现在是
string
我如何计算X-run的数量,在这种情况下是3的大小1,2和1 我已经尝试过rle()函数,但我不明白如何返回不同的X和Y的
答案 0 :(得分:3)
要获取Z
中每个值的投放次数,您可以使用rle()
,首先查找Z
中X or Y
的值,然后对其进行子集化再次对TRUE
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 discimus所指出的可以写成
with(rle(Z %in% X), lengths[values])
with(rle(Z %in% Y), lengths[values])
其中
Z %in% X ## gives
TRUE FALSE FALSE FALSE TRUE TRUE TRUE FALSE FALSE FALSE
然后在rle
向量上使用TRUE/FALSE
为我们提供了每个TRUE/FALSE
的运行
rle(Z %in% X) ## gives
Run Length Encoding
lengths: int [1:4] 1 3 3 3
values : logi [1:4] TRUE FALSE TRUE FALSE
因此,我们可以单独采用lenghts
和values
个组件,并将lenghts
分组到values == TRUE
数据强>
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)