Contar el número de elementos con los valores de x en un vector
Tengo un vector de números:
numbers <- c(4,23,4,23,5,43,54,56,657,67,67,435,
453,435,324,34,456,56,567,65,34,435)
¿Cómo puedo hacer que R cuente el número de veces que aparece un valor x en el vector?
Puedes usar simplemente 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
Entonces puedes subconjuntoarlo:
> a[names(a)==435]
435
3
O conviértalo en un data.frame si se siente más cómodo trabajando con eso:
> as.data.frame(table(numbers))
numbers Freq
1 4 2
2 5 1
3 23 2
4 34 2
...
La forma más directa es sum(numbers == x)
.
numbers == x
crea un vector lógico que es VERDADERO en cada ubicación en la que ocurre x, y cuando sum
ing, el vector lógico se convierte en numérico, lo que convierte VERDADERO en 1 y FALSO en 0.
Sin embargo, tenga en cuenta que para números de coma flotante es mejor usar algo como: sum(abs(numbers - x) < 1e-6)
.
Probablemente haría algo como esto
length(which(numbers==x))
Pero realmente, una mejor manera es
table(numbers)
También lo hay count(numbers)
del plyr
paquete. Mucho más conveniente que table
en mi opinión.