Вот некоторые случайные числа, реплицируется
x = sample(runif(10), 1000, TRUE)
Найти уникальные (необязательно, округление до значащих цифр) значений, то найти индекс каждого x
в таблице уникальных значений и табулирования этих
## x = signif(x, 6)
ux = sort(unique(x))
idx = match(x, ux)
n = tabulate(idx, nbins=length(ux))
наконец, обобщать результаты
df = data.frame(x=ux, n=n)
Используйте резюме, чтобы увидеть все отсчеты
> head(df)
x n
1 0.02832152 108
2 0.04973473 90
3 0.19770913 96
4 0.31591234 103
5 0.59334322 97
6 0.64145901 98
или определить значения с максимальными подсчетами
> df[df$n == max(df$n), , drop=FALSE]
x n
10 0.9711141 127
спасибо, но мне нужно использовать nbins = макс(), потому что я пытаюсь определить количество большинства в вектор – user1723765
@ user1723765 Я не понимаю, ответ табулирует индексы, а не значения. Возможно, вы хотите 'ux [who.max (n)]'. –
+1 очень хорошая идея. Интересно, какое количество представлений с плавающей запятой (/ допуска) будет играть роль в получении уникальных значений ... Ex: 'x <- c (1.23456789123, 1.23456789124); unique (x) 'было бы неплохо иметь возможность иметь только одно значение здесь. – Arun