У меня есть вектор чисел:
numbers <- c(4,23,4,23,5,43,54,56,657,67,67,435,
453,435,324,34,456,56,567,65,34,435)
Как у меня может быть количество R количество раз, значение x появляется в векторе?
Вы можете просто использовать table ()
:
> a <- table(numbers)
> a
numbers
4 5 23 34 43 54 56 65 67 324 435 453 456 567 657
2 1 2 2 1 1 2 1 2 1 3 1 1 1 1
Затем вы можете подмножество его:
> a[names(a)==435]
435
3
Или преобразовать его в data.frame, если вам удобнее работая с этим:
> as.data.frame(table(numbers))
numbers Freq
1 4 2
2 5 1
3 23 2
4 34 2
...
вот один быстрый и грязный способ:
x <- 23
length(subset(numbers, numbers==x))
Я бы, наверное, сделал что-то вроде этого
length(which(numbers==x))
Но на самом деле, лучший способ -
table(numbers)
The most direct way is sum(numbers == x)
.
numbers == x
creates a logical vector which is TRUE at every location that x occurs, and when sum
ing, the logical vector is coerced to numeric which converts TRUE to 1 and FALSE to 0.
However, note that for floating point numbers it's better to use something like: sum(abs(numbers - x) < 1e-6)
.