在doBy命令中使用字符串

时间:2011-04-22 03:34:29

标签: r

我在我正在编写的函数中使用了summaryBy()(doBy包)函数。我想定义需要计算摘要的变量(作为字符串)。当我定义一个字符串并将其传递给summaryBy函数时,它不起作用。以下是来自summaryBy函数的帮助文件中的示例。

data(dietox)
dietox12<- subset(dietox,Time==12)  

以下代码正常工作

summaryBy(Weight+Feed~Evit+Cu,data=dietox12,FUN=mean)

但以下情况不起作用

vardef<-'Evit';
summaryBy(Weight+Feed~vardef+Cu,data=dietox12,FUN=mean)

我知道为什么它不起作用。我想知道是否有另一种方式。当然我可以使用ddply函数代替summaryBy函数 谢谢。

1 个答案:

答案 0 :(得分:2)

如果要动态构建公式,最简单的方法是将其完全构建为字符串。

form<-formula(paste("Weight+Feed~", vardef, "+Cu", sep=""))

summaryBy(form,data=dietox12,FUN=mean)

还有其他选择,但这是最简单的。