计算变量的每个类别的函数(循环函数)

时间:2017-03-24 12:55:07

标签: r

如何为具有相同索引的sum(A$Freq)/sum(A$pi) (i=1,2,3)级别计算z?我的意思是,当z=regression1我们要计算sum(A$Freq)/sum(A$p1)时,z=regression2时我们需要计算sum(A$Freq)/sum(A$p2),最后我需要z=regression3时需要计算sum(A$Freq)/sum(A$p3) z }。由于我的原始数据集非常大且Freq<-seq(100,126,1) x<-seq(1,27,1) z<-rep(c('Regression1','Regression2','Regression3'),each = 3, times=3) p1<-seq(2,28,1) p2<-seq(10,36,1) p3<-seq(0,26,1) s<-data.frame(x,Freq,z,p1,p2,p3) 有很多级别,我正在寻找使用循环函数的解决方案。

from django.shortcuts import render, get_object_or_404, redirect
from .models import Customer, Product, Year

# Create your views here.
def home(request):
    customer = Customer.objects.all
    context = {'customers': customer}
    return render(request, 'customer.html', context)

1 个答案:

答案 0 :(得分:4)

sapply函数用于您需要评估的索引:

res <- sapply(1:3, 
    FUN=function(x) sum(s[grepl(x, s$z),"Freq"]) / sum(s[grepl(x, s$z),paste0("p",x)]))
res
[1] 9.166667 4.913043 7.250000

grepl(x, s$z)s的行设置为包含相应索引的行 paste0("p",x)为相应的索引创建列的名称。