R中的函数(合并基)

R中的函数(合并基),r,R,我在R中有以下基础 table1<-data.frame(group=c(1,1,1,2,2,2),price=c(10,20,30,10,20,30), visits=c(100,200,300,150,250,350)) table1<-table1 %>% arrange(price) %>% split(.$group) $`1` group price visits 1

我在R中有以下基础

table1<-data.frame(group=c(1,1,1,2,2,2),price=c(10,20,30,10,20,30),
                                       visits=c(100,200,300,150,250,350))

table1<-table1 %>% arrange(price) %>% split(.$group)

$`1`
    group price visits
1     1    10    100
3     1    20    200
5     1    30    300

 $`2`
    group price visits
2     2    10    150
4     2    20    250
6     2    30    350

group_1<-data.frame(case_1=c(0.2,0.3,0.4),case_2=c(0.22,0.33,0.44))
group_2<-data.frame(case_1=c(0.3,0.4,0.5),case_2=c(0.33,0.44,0.55))

在逐步阅读您提供的数据并了解您要做的事情之后。下面是使用
mapply
的建议

group_list <- list(group_1, group_2)
mapply(function(x, y) colSums(x * y),split(table1$group, table1$group),group_list)

#          1    2
#case_1 0.90 2.40
#case_2 0.99 2.64

group\u list基于初始数据集,我们可以使用
group\u by
操作来完成此操作

library(tidyverse)
bind_rows(group_1, group_2) %>% 
         bind_cols(table1['group'], .) %>% 
         mutate(case_1 = group*case_1, case_2 = group*case_2) %>% 
         group_by(group) %>% 
         summarise_each(funs(sum))
# A tibble: 2 × 3 
#   group case_1 case_2
#    <dbl>  <dbl>  <dbl>
#1     1    0.9   0.99
#2     2    2.4   2.64
库(tidyverse)
绑定_行(组_1,组_2)%>%
绑定列(表1[“组”],)%>%
变异(案例1=组*案例1,案例2=组*案例2)%>%
分组依据(分组)%>%
每个项目的总结(funs(sum))
#一个tibble:2×3
#团体个案1个案2
#        
#1     1    0.9   0.99
#2     2    2.4   2.64
数据
表1没有
表2
。我想你需要
sum(表1$2[,c(“集团”)]*组2[,c(“案例1”)])
sum(表1$2[,c(“集团”)]*组2[,c(“案例2”))
library(tidyverse)
bind_rows(group_1, group_2) %>% 
         bind_cols(table1['group'], .) %>% 
         mutate(case_1 = group*case_1, case_2 = group*case_2) %>% 
         group_by(group) %>% 
         summarise_each(funs(sum))
# A tibble: 2 × 3 
#   group case_1 case_2
#    <dbl>  <dbl>  <dbl>
#1     1    0.9   0.99
#2     2    2.4   2.64
table1<-data.frame(group=c(1,1,1,2,2,2),price=c(10,20,30,10,20,30),
                                   visits=c(100,200,300,150,250,350))