490 Stimmen

Zählen der Anzahl der Elemente mit den Werten von x in einem Vektor

Ich habe einen Vektor von Zahlen:

numbers <- c(4,23,4,23,5,43,54,56,657,67,67,435,
         453,435,324,34,456,56,567,65,34,435)

Wie kann ich R die Anzahl der Male zählen lassen, die ein Wert x in dem Vektor erscheint?

22voto

Sergej Andrejev Punkte 8801

In R gibt es dafür eine Standardfunktion

tabulate(numbers)

14voto

ishandutta2007 Punkte 14498
numbers <- c(4,23,4,23,5,43,54,56,657,67,67,435 453,435,324,34,456,56,567,65,34,435)

> length(grep(435, numbers))
[1] 3

> length(which(435 == numbers))
[1] 3

> require(plyr)
> df = count(numbers)
> df[df$x == 435, ] 
     x freq
11 435    3

> sum(435 == numbers)
[1] 3

> sum(grepl(435, numbers))
[1] 3

> sum(435 == numbers)
[1] 3

> tabulate(numbers)[435]
[1] 3

> table(numbers)['435']
435 
  3 

> length(subset(numbers, numbers=='435')) 
[1] 3

12voto

Berny Punkte 111

Wenn Sie die Anzahl der Auftritte nachträglich zählen wollen, können Sie die Funktion sapply Funktion:

index<-sapply(1:length(numbers),function(x)sum(numbers[1:x]==numbers[x]))
cbind(numbers, index)

Ausgabe:

        numbers index
 [1,]       4     1
 [2,]      23     1
 [3,]       4     2
 [4,]      23     2
 [5,]       5     1
 [6,]      43     1
 [7,]      54     1
 [8,]      56     1
 [9,]     657     1
[10,]      67     1
[11,]      67     2
[12,]     435     1
[13,]     453     1
[14,]     435     2
[15,]     324     1
[16,]      34     1
[17,]     456     1
[18,]      56     2
[19,]     567     1
[20,]      65     1
[21,]      34     2
[22,]     435     3

10voto

JD Long Punkte 57096

Hier ist eine schnelle und schmutzige Methode:

x <- 23
length(subset(numbers, numbers==x))

7voto

Sie können die Zahl in der folgenden Zeile nach Belieben ändern

length(which(numbers == 4))

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X