2011-12-20 6 views
10

Bir veri çerçevesi alan ve bu veri çerçevesindeki tüm sütunları histogram olarak çizen bir işlev yazmak istiyorum.Veri çerçeve sütun adları dizelerden (qplot, ggplot2) için uygun değişkenlere nasıl dönüştürülür?

sütun adları Ben önceden bildiğim bir dataframe için

, ben

qplot(colname1, data=df, geom='histogram') 
qplot(colname2, data=df, geom='histogram') 
... 

yazabilir ama ben bir dize "colname1" olarak sütunun adını kullanabilir, böylece genel olarak bunu yapmak istiyor.

plot_histogram_of_column <- function(df, colname) { 
    # qplot(colname, data=df, geom='histogram') won't work 
} 

cevap

20

kullanın ggplot ve aes_string yazmayı başka deyişle

. Böyle bir şey:

ggplot(data = df, aes_string(x = colname)) + geom_histogram() 

aes_string bu amaçla tam yazılmıştır.

+2

Burada belgelendiği gibi: http://had.co.nz/ggplot2/aes.html Not, yine de, anlayabildiğim kadarıyla, ggplot2 dokümantasyon sitesinin NO sayfası bu bağlantıya bağlanır. Onu bulmanın tek yolu, onu aramak olduğunu bilmek. –

+0

@ Maxy-B Yerleşik dokümanlar ('aes'), 0.9.0 sürümünde çok geliştirildi ve aes_string'in yardım sayfasına bir bağlantı içerir. 8.9.0'da durum böyle olsaydı hatırlayamıyorum. – joran

+0

Evet. Bununla ilgili kendi problemimi sadece bağımsız olarak çözdüm. Bu işlev inanılmaz derecede belirsiz ve keşfedilmesi zor, ama önemli. Şüphesiz, büyük bir veri kümesini çizerken parametreleştirmek istediğiniz ilk şeylerden biri, y dizisinin kimliğidir, ancak örnekler bunu vurgulamamaktadır. (Açıklık için başlığınızı düzenledim) – smci

İlgili konular