r - 计算配对样本中的秩数
r - Count the number of ranks in a paired sample
基本上我得到了一个配对样本说:
X = c(14, 5, 2, 8 , 9, 10)
Y = c(7, 3, 4, 13, 11, 12)
如果我将两个样本排序并配对成 Z,我可以使用什么函数来记录 Z 中的秩数?
Z = c(2, 3, 4, 7, 8, 9, 10, 11, 12, 13)
所以 Z 现在是
Z = (X, Y, Y, Y, X, X, X, Y, Y, Y, X)
我如何计算 X 运行的数量,在这种情况下是 3 个大小为 1、2 和 1
我试过 rle() 函数,但我不明白如何 return 不同的 X 和 Y
要获取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
然后在 TRUE/FALSE
向量上使用 rle
给我们每个 TRUE/FALSE
的 runs
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)
基本上我得到了一个配对样本说:
X = c(14, 5, 2, 8 , 9, 10)
Y = c(7, 3, 4, 13, 11, 12)
如果我将两个样本排序并配对成 Z,我可以使用什么函数来记录 Z 中的秩数?
Z = c(2, 3, 4, 7, 8, 9, 10, 11, 12, 13)
所以 Z 现在是
Z = (X, Y, Y, Y, X, X, X, Y, Y, Y, X)
我如何计算 X 运行的数量,在这种情况下是 3 个大小为 1、2 和 1 我试过 rle() 函数,但我不明白如何 return 不同的 X 和 Y
要获取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
然后在 TRUE/FALSE
向量上使用 rle
给我们每个 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)