R:遍历一系列数字并选择最大的一个

R: go through a sequence of numbers and choose the highest one

我正在从网站上抓取数据,在这种情况下,数据整理变得有点困难。

我现在拥有的是进入序列的一串数字,比方说

    a<-c(1,2,3,1,2,3,4,5,1,2,3,4)

我要查找的第一个值是 3,第二个是 5,第三个是 4。 所以基本上,我想遍历序列 1:5 并选择最高值,最终输出为

    a<-c(3,4,5)

我想过选择最大值,比如

    a<-sort(a, decreasing = T)
    a<-a[1:3]

但这不算数,因为最终产品是:

    [1] 5 4 4

区分小值的地方。如果这可能,有什么想法吗?

不完全确定这是否是您要的。我想你想要的是看看你的向量中有哪些值。

试试这个:

a<-c(1,2,3,1,2,3,4,5,1,2,3,4)
search_values = 3:5

# unique values
search_values = a[a %in% search_values]
unique(search_values)

# counts of values
table(search_values)
sort(unlist(lapply(split(a, cumsum(c(1, diff(a)) != 1)), max), use.names = FALSE))
#[1] 3 4 5

听起来你想要这样的东西?

a <- c(1,2,3,1,2,3,4,5,1,2,3,4) # Data input

a <- unique(a) # Keep unique numbers

a <- sort(a, dec = F) # Sort ascending

tail(a, 3) # Last three numbers in set

给出:

[1] 3 4 5

一行:

tail(sort(unique(a), dec = F), 3)