我在我正在编写的函数中使用了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函数 谢谢。
答案 0 :(得分:2)
如果要动态构建公式,最简单的方法是将其完全构建为字符串。
form<-formula(paste("Weight+Feed~", vardef, "+Cu", sep=""))
summaryBy(form,data=dietox12,FUN=mean)
还有其他选择,但这是最简单的。