我在R中创建了一些带有数据和返回变量的简单函数。我很感激使用下面的代码将其转到另一个级别的说明:有一个数据框'df'包含变量DOFW,CDFME(还有其他的,但是这两个就足够了。我想通过在函数中使用变量的名称并使其构建条形图。基本上我想创建一个函数来执行z< - 通过abline的操作并为每个变量调用该函数。谢谢。
df<-data.frame(y.train,x.train)
z<-ddply(df,~DOFW,summarise,median=median(PCTCHG))
row.names(z)<-z$DOFW
z$DOFW<-NULL
barplot(t(as.matrix(z)),main="Median Return by DOFW",xlab="DOFW")
abline(h=median(y.train))
z<-ddply(df,~CDFME,summarise,median=median(PCTCHG))
row.names(z)<-z$CDFME
z$CDFME<-NULL
barplot(t(as.matrix(z)),main="Median Return by CDFME",xlab="CDFME")
abline(h=median(y.train))
答案 0 :(得分:1)
实际上,您并不需要非标准评估,因为ddply
允许您传递变量名称的字符串而不是公式。这是你怎么做到的。
#sample data
dd<-data.frame(a=rep(1:5, 2), b=2:11, c=runif(10))
#define function
library(plyr)
myplot<-function(coln) {
z<-ddply(dd, coln, summarise, median=median(c))
barplot(z[,2], main=paste("Median Return By", coln))
abline(h=median(dd$c))
}
#make plots
myplot("a")
myplot("b")
以及将列名称作为字符向量的最简单方法是names(dd)
。