R,返回对象中缺少变量名,ddply,function(x)

时间:2016-02-24 05:41:29

标签: r function plyr

运行此代码时,为什么变量名称result_var_all不会显示在v中?它只是我要问的变量名称本身。否则代码工作正常。

 v<-ddply(y1,.(metric_name), result_var_all<-function(x) {
      y1a<-x[match(unique(x[,2]),x[,2]),] 
      y1b<-(y1a$event)
      y1c<-subset(x,x[,1] %in% (y1b))
      var(y1c$result_value)
      })

我也尝试了这种变化,它再次运行完成,但是对于样本数据中的field = metric_name的每个值都给出了相同的结果(这个小数据集的NA和较大数据集中的数值)。那是为什么?

z1<-split(y1,y1[,3])   
lapply(z1, function(x) {
    y1a<-x[match(unique(x[,2]),x[,2]),]      
    y1b<-(y1a$event)
    y1c<-subset(x,x[,1] %in% (y1b))
    x["result_var_all"]<-var(y1c$result_value)
    out<-x
    return(out)})


m<-rep(c("a1","a2","a3","b1","b2","b3","c1","c2","c3"),2)
n<-rep(c(rep(letters[1],3),rep(letters[2],3),rep(letters[3],3)),2)
p<-rep(c("width","depth","count"),6)
r<-c(sample((100:200),9),sample((20:50),9))
y1<-data.frame(m,n,p,r)
colnames(y1)<-c("event","site","metric_name","result_value")

这是一个较长脚本中的模块,其中过滤器是目标记录集的子集,大约有300个度量标准。并非所有网站都有相同的指标,有些网站也有多个活动。

0 个答案:

没有答案