首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R中的函数(合并基础)

R中的函数(合并基础)
EN

Stack Overflow用户
提问于 2017-03-01 12:34:06
回答 2查看 49关注 0票数 1

我在R中有以下基础。

代码语言:javascript
复制
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))

因此,问题是如何才能在不重复四次的情况下执行以下操作。我认为应用函数或类似的函数会更适合。

代码语言:javascript
复制
sum(table1$`1`[,c("group")] * group_1[,c("case_1")])
sum(table1$`1`[,c("group")] * group_1[,c("case_2")])
sum(table2$`1`[,c("group")] * group_2[,c("case_1")])
sum(table2$`1`[,c("group")] * group_2[,c("case_2")])
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-03-01 13:02:05

在一步一步地查看您提供的数据并了解您正在尝试做什么之后。这里有一个使用mapply的建议。

代码语言:javascript
复制
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_list。用group拆分table1,并使用mapply对它们进行乘法运算,然后按列求和。如果我没理解错的话,这就是你需要的,如果不是这样,请让我知道。

票数 1
EN

Stack Overflow用户

发布于 2017-03-01 13:36:29

基于初始数据集,我们可以使用group_by操作来完成此操作

代码语言:javascript
复制
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

数据

代码语言:javascript
复制
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))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42523256

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档