Может быть, этот вопрос уже рассмотрен и ответил в SO, но не смог его выяснить. Я вычисляю суммарную сумму с условиями на очень большом кадре данных. Посмотрите приведенный ниже примерУсловная суммарная сумма с применением функций в R
Data=data.frame("Catg"=c("A","A","A","A","A","B","B","B","C","C","C","D","D","D","D","D","D","D","D","E","E","F"),"Val"=c(67,42,12,32,28,1,11,9,38,61,75,99,22,44,89,99,51,34,82,99,74,42))
Res=NULL
UniqCatg=unique(Data$Catg)
for(i in 1:length(UniqCatg))
Res=c(Res, cumsum(Data[Data$Catg==UniqCatg[i],"Val"]))
Data$Res=Res
Data
Есть ли разумный способ сделать это без петель? (Например, применять функции)
Привет, я заметил, что ты есть *** не *** принял ответ. Вы можете прочитать разделы [** about **] (http://stackoverflow.com/about) и [** FAQ **] (http://stackoverflow.com/faq) веб-сайта, чтобы помочь вам получить максимальную отдачу от SO. Если ответ действительно решает вашу проблему, вы можете * рассмотреть * выдержку и/или пометить ее как принятую, чтобы показать, что на вопрос был дан ответ, отметив небольшую зеленую галочку рядом с подходящим ответом. Вы ** не обязаны делать это, но это помогает уберечь сайт от оставшихся без ответа вопросов и вознаграждает тех, кто тратит время на решение вашей проблемы. –