2016-04-07 18 views
0

Verilerimden 2by2 tablo oluşturmaya çalışıyorum.R, tabanı kullanarak tablolar oluşturun :: by

Basit 2bx2 oluşturmak için aşağıdaki

my.list <- list(c(1, 1, 0, 0, 1), c(1, 0, 0, 1, 1), c(0, 0, 0, 1, 1)) 
df <- data.frame(c(1, 1, 0, 0, 1), c(1, 0, 0, 1, 1), c(0, 0, 0, 1, 1)) 
names(df) = c("test1", "test2", "test3") 

reference <- c(1, 1, 1, 0, 0) 
gender <- c("m", "w", "w", "m", "m") 

benzer ist bir liste/veya dataframe var - tablolar yaptım:

lapply(list, table, reference) 

bu böyle tablolarla bir listede sonuçları :

[[1]] 
    reference 
    0 1 
    0 1 1 
    1 1 2 

[[2]] 
    reference 
    0 1 
    0 0 2 
    1 2 1 

[[3]] 
    reference 
    0 1 
    0 0 3 
    1 2 0 

Şimdi hangi ı tablolar bölmek istediğiniz bir diğer vektör "cinsiyet" var.

I

by(df, gender, table, reference) 

çalıştı ama olsun tüm sort.list (y)

hata olduğu: 'X' muss atomar sein für 'sort.list'

, 'x', 'sort.list' için atomik olmalıdır '

Birisi bana bunun ne olduğunu açıklayabilir mi 2by2 tablolarımı nasıl üretebilirim ve nasıl üretebilirim?

benim istenen çıkış aşağıdaki gibi görünmelidir:

"m"       "w" 

[[1]]      [[1]] 
    reference     reference  
    1      0 1 
    0 1      0 1 0 
    1 1      1 1 1 

[[2]]      [[2]] 
    reference      reference 
    1      0 1 
    0 2      1 2 1 

[[3]]      [[3]] 
    reference      reference 
    1      0 1 
    0 2      0 0 1 
          1 2 0 

çok teşekkür ederim çocuklar!

+0

Hey ile oluşturulan her endeks uygulayabilirsiniz

İstediğiniz çıkışı hakkında hala emin değilim, ben istenilen çıktıyı yapmak için soruyu düzenlenmiş Daha açık. Temel olarak ben büyük bir veri analizi analizi için birden fazla alt grup oluşturmak için – KTB

cevap

0

"m" ve "w?" Ben sadece senin zaten çalışma fonksiyonunu alıp by$gender

df <- data.frame(test1 = c(1, 1, 0, 0, 1), 
       test2 = c(1, 0, 0, 1, 1), 
       test3 = c(0, 0, 0, 1, 1), 
       reference = c(1, 1, 1, 0, 0), 
       gender = I(c("m", "w", "w", "m", "m"))) 

by(df, df$gender, function(x) lapply(x[, 1:3], table, x$reference)) 

## df$gender: m 
## $test1 
##  
##  0 1 
## 0 1 0 
## 1 1 1 
## 
## $test2 
##  
##  0 1 
## 1 2 1 
## 
## $test3 
##  
##  0 1 
## 0 0 1 
## 1 2 0 
## 
## --------------------------------------------------------------------- 
## df$gender: w 
## $test1 
##  
##  1 
## 0 1 
## 1 1 
## 
## $test2 
##  
##  1 
## 0 2 
## 
## $test3 
##  
##  1 
## 0 2 
## 
+0

Evet! İstediğim gibi çalışıyor. Çok teşekkür ederim. – KTB