2016-05-10 15 views
2

Also würde ich gerne einen eindeutigen Wert einer Spalte berechnen. Dies ist der Datenrahmen:Zählen unterschiedlicher Werte in der Spalte eines Datenrahmens in R

asa 
---- 
aa 
bb 
aa 
aa 
bb 
cc 
dd 

erhalten möchten:

asa | n 
-------- 
aa | 3 
bb | 2 
cc | 1 
dd | 1 

Ich versuchte ddply von Counting unique/distinct values by group in a data frame und tun mit diesem Code ve: (reproduzierbar)

asa<-c("aa","bb","aa","aa","bb","cc","dd") 
asad<-data.frame(asa) 
ddply(asad,~asa,summarise,n=length(unique(asa))) 

Aber ich habe:

asa n 
1 aa 1 
2 bb 1 
3 cc 1 
4 dd 1 

Es hat die Berechnung nicht gemacht. Stellt fest, dass der Wert in der Spalte jederzeit hinzugefügt werden kann. es ist also nicht immer "aa", "bb", "cc" und "dd". Es kann auch durch Leerzeichen oder Komma getrennt sein ("aa bb", "aa, bb" oder "aa, bb"). Es muss einen Weg dafür geben. Vielen Dank im Voraus

+1

versuchen, diese verwenden: 'Tabelle (asa)' –

+0

kann ich ein Variable mit Wert von n von aa? – Elbert

+1

nicht wahr? setze es in einen data.frame wie 'asad <- data.frame (table (asa))' und ändere den Namen z. 'namen (asad) <- c (" asa "," n ")' –

Antwort

1

Wir table

setNames(as.data.frame(table(df1$asa)), c("asa", "n")) 
# asa n 
#1 aa 3 
#2 bb 2 
#3 cc 1 
#4 dd 1 

Oder mit tally von dplyr

library(dplyr) 
df1 %>% 
    group_by(asa) %>% 
    tally() 
# asa  n 
# (chr) (int) 
#1 aa  3 
#2 bb  2 
#3 cc  1 
#4 dd  1 
+0

Lassen Sie mich ss <-as.data.frame (Tabelle (asad $ asa)) und ss [1,] $ Freq – Elbert

+0

@Elbert Was sind Ihre Zweifel? – akrun

+1

nvm. es funktioniert gut ! danke – Elbert