2010-09-24 34 views
9

R'nin yerleşik ToothGrowth örnek veri kümesini kullanarak, bu çalışır:Ddply için değişkenler listesi oluşturmak için dize değişkenleri nasıl kullanılır?

ddply(ToothGrowth, .(supp,dose), function(df) mean(df$len)) 

Ancak altküme faktörlerinin değişken olması gerekir,

factor1 = 'supp' 
factor2 = 'dose' 
ddply(ToothGrowth, .(factor1,factor2), function(df) mean(df$len)) 

gibi bir şey. Bu nasıl yapılmalı?

Belki de böyle bir şey düşündüm:

factorCombo = paste('.(',factor1,',',factor2,')', sep='') 
ddply(ToothGrowth, factorCombo, function(df) mean(df$len)) 

Ama bu işe yaramıyor. Ben yakınım, ama bunu yapmanın doğru yolu olduğundan emin değilim. Bütün komutun bir dizeye konulabileceğini, ardından dizenin bir eval() çağrısının yapılacağını, ama umarım daha zarif bir yol olduğunu umuyorum.

cevap

7

Dene:

x <- c("supp", "dose") 
ddply(ToothGrowth, x, function(df) mean(df$len)) 
+0

teşekkürler! ve tam olarak istediğim formatı kullanmak için, ilk satır şöyle olurdu: x <- c (factor1, factor2) –

+0

Sorun yok! ddply tanrısaldır, bir kez olsun, hemen hemen istediğiniz her şeyi yapabilirsiniz. –

+0

Güzel. Değişen değişkenlerle aynı numarayı yapabilir misiniz? X <- c ("supp") 'aldığınızı ve gruplandırılmış L ve V1 ortalamalarını istediğinizi varsayalım. –

İlgili konular