使用R选择重复值中的第二或第三位
Choose second or third rank in repeated value using R
我有 x 的一些值:
x <- c(12, 5, 6, 7, 8, 5, 8, 7, 5, 6, 9, 10)
p <- x[order(x)]
p
[1] 5 5 5 6 6 7 7 8 8 9 10 12
x的最小值是5,但我想选择最小x的第二个(6)或第三个(7)。
如何获取?
我们可以编写一个函数来获取第 n 个最小值,方法是仅考虑已排序向量 p
的 unique
个值。
get_nth_smallest_value <- function(n) {
unique(p)[n]
}
get_nth_smallest_value(2)
#[1] 6
get_nth_smallest_value(4)
#[1] 8
或者如果我们只需要 x
,我们可以先 sort
它们,只取 unique
个值,然后通过它的索引获取值。
get_nth_smallest_value <- function(n) {
unique(sort(x))[n]
}
get_nth_smallest_value(2)
#[1] 6
get_nth_smallest_value(3)
#[1] 7
我有 x 的一些值:
x <- c(12, 5, 6, 7, 8, 5, 8, 7, 5, 6, 9, 10)
p <- x[order(x)]
p
[1] 5 5 5 6 6 7 7 8 8 9 10 12
x的最小值是5,但我想选择最小x的第二个(6)或第三个(7)。
如何获取?
我们可以编写一个函数来获取第 n 个最小值,方法是仅考虑已排序向量 p
的 unique
个值。
get_nth_smallest_value <- function(n) {
unique(p)[n]
}
get_nth_smallest_value(2)
#[1] 6
get_nth_smallest_value(4)
#[1] 8
或者如果我们只需要 x
,我们可以先 sort
它们,只取 unique
个值,然后通过它的索引获取值。
get_nth_smallest_value <- function(n) {
unique(sort(x))[n]
}
get_nth_smallest_value(2)
#[1] 6
get_nth_smallest_value(3)
#[1] 7