2016-03-30 23 views
1

2 satır değerleri, frekans nasıl hesaplanacağını: (Sütun x değerleri frekans sayısını saymak için R. bu pivotu elde nasılBöyle bir tablo R

Menu name | Transcode 
Menu 1 | a1 
Menu 2 | a2 
Menu 3 | a3 
Menu 1 | a1 
Menu 3 | a2 
Menu 1 | a1 
Menu 1 | a3 

menü adını) ve sütun x

enter image description here

cevap

1

yerine iki kolon çıkışı ile ilişkili olarak, kolon y (dönüşüm kodu) frekans,() daha kolay işlem sonrası için üç sütun içinde olması daha iyi olabilir. Sıklık sayısını table kullanarak addmargins'u sum kullanın ve her "Menü_adı" için sayımlardan "data.frame" e dönüştürün. Gerekirse, ilk sütuna göre order çıkışını ('res') yapabiliriz.

res <- as.data.frame(addmargins(table(df1), 2)) 
res1 <- res[order(res[,1]),] 
row.names(res1) <- NULL 
res1[1:2] <- lapply(res1[1:2], as.character) 

Ardından "Büyük Sum" Satır

rbind(res1, list("Menu", "Grand Sum", sum(res1$Freq))) 
# Menu_name Transcode Freq 
#1  Menu 1  a1 3 
#2  Menu 1  a2 0 
#3  Menu 1  a3 1 
#4  Menu 1  Sum 4 
#5  Menu 2  a1 0 
#6  Menu 2  a2 1 
#7  Menu 2  a3 0 
#8  Menu 2  Sum 1 
#9  Menu 3  a1 0 
#10 Menu 3  a2 1 
#11 Menu 3  a3 1 
#12 Menu 3  Sum 2 
#13  Menu Grand Sum 14 
Çalışıyor
+1

oluşturmak için rbind kullanın! Teşekkürler –

1
df <- data.frame(X= sample(c("Menu 1", "Menu 2"), 10, replace = TRUE), Y= sample(c("a1", "a2", "a3"), 10, replace = TRUE)) 
df 
     X Y 
1 Menu 2 a2 
2 Menu 1 a3 
3 Menu 1 a3 
4 Menu 2 a1 
5 Menu 1 a1 
6 Menu 2 a2 
7 Menu 1 a1 
8 Menu 1 a2 
9 Menu 2 a2 
10 Menu 2 a2 

library(dplyr) 
df %>% group_by(X,Y) %>% arrange(X,Y) %>% summarise(count = n()) 

Source: local data frame [5 x 3] 
Groups: X 

    X  Y count 
    1 Menu 1 a1  2 
    2 Menu 1 a2  1 
    3 Menu 1 a3  2 
    4 Menu 2 a1  1 
    5 Menu 2 a2  4 
İlgili konular