2016-03-30 5 views
0

işlev çiftleri(), tüm p x p değişkenlerinin p dağılım grafiğini üretir.Bir veri çerçevesinin bazı değişkenlerini bazılarına karşı nasıl çizilir?

x<-rnorm(100,0,1) 
    y<-rnorm(100,0,1) 
    z<-rnorm(100,1,1) 
    t<-rnorm(100,2,10) 
    dd<-cbind(x,y,z,t) 
    pairs(dd) 

Ama ızgara 'hatları' ve sütunlar için olanları tercih edebilmek istiyorum. Örneğin, çiftleri (x, y) (x, z) (t, y) (t, z) çizimi. Örneğin (x + t) ~ (z + y) gibi bir formülü kabul eden bir işlev var mı?

Çok teşekkür ederim.

+0

'çiftleri (dd, horInd = C (1, 4), verInd = c (2,3)) –

cevap

0

için pairs spesifik bağımsız değişkenler kullanmak veya çıkış olarak bir formül kabul özel bir işlev oluşturabilir ya:

pairs(dd, horInd=c(1, 4), verInd=c(2,3)) 

özel fonksiyonu:

my_pairs <- function(df, formula) { 
    form <- deparse(formula) 
    s <- strsplit(form, "~") 
    lhs <- trimws(unlist(strsplit(s[[1]][1], "\\+"))) 
    rhs <- trimws(unlist(strsplit(s[[1]][2], "\\+"))) 

    lhs.ind <- match(lhs, colnames(df)) 
    rhs.ind <- match(rhs, colnames(df)) 
    all_cmbs <- expand.grid(lhs.ind, rhs.ind) 
    rows <- all_cmbs[,1] 
    cols <- all_cmbs[,2] 
    par(mfrow=c(2,2)) 
    for(i in 1:4) { 
    eval(substitute(plot(df[,rows[i]], df[,cols[i]], 
         xlab=colnames(df)[rows[i]], 
         ylab=colnames(df)[cols[i]]))) 
    } 
} 

my_pairs(dd, x + t ~ y + z) 
+0

Çok teşekkürler, Pierre. Çok utandım, bu argümanları yardım sayfasında görmedim. (merci beaucoup, si ton nomé révèle bien que tu es français). Sadece eksen isimleri ve bunun gibi detaylar için görmem gerek. Yardımın için teşekkürler ! –

+0

Düzenleme: R'nin 3.1.1 sürümü bu argümanları içermiyor gibi görünüyor. Bu yüzden bilgisayarımda yardımdaki argümanları buldum ama meslektaşım bilgisayarımda değil. Sadece argüman bulamayanlar için bunu ekliyor. –