Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 如何将一个8x4测向仪与一个7x4测向仪组合,以产生一个56x5测向仪,并乘以值_R_Dataframe_Dplyr - Fatal编程技术网

R 如何将一个8x4测向仪与一个7x4测向仪组合,以产生一个56x5测向仪,并乘以值

R 如何将一个8x4测向仪与一个7x4测向仪组合,以产生一个56x5测向仪,并乘以值,r,dataframe,dplyr,R,Dataframe,Dplyr,我有一个数据帧tech\u change\u supply,看起来像这样: supplysector tech_change_all tech_change_elec tech_change_no_elec aluminum NA .26 .77 cement NA .86 .92

我有一个数据帧
tech\u change\u supply
,看起来像这样:

supplysector       tech_change_all   tech_change_elec    tech_change_no_elec
aluminum                  NA            .26                  .77      
cement                    NA            .86                  .92
chemicals                 NA           1.32                   NA
food processing           NA            .39                  .70
iron and steel            NA            .02                  .58
other manufacturing       NA           1.11                 1.04
other nonmetallic         NA            .41                  .75
pulp paper wood           NA            .96                   NA
subsector       tech_change_all   tech_change_elec    tech_change_no_elec
boilers                0                0.0                1.0
boilers_CHP            0                0.0                1.0
electrochemical        0                1.0                0.0
feeedstocks            0                0.0                0.0
machine drive          0                1.0                0.0
process heat           0                0.0                1.0
other uses             0                0.5                0.5
数据帧
tech\u change\u service
如下所示:

supplysector       tech_change_all   tech_change_elec    tech_change_no_elec
aluminum                  NA            .26                  .77      
cement                    NA            .86                  .92
chemicals                 NA           1.32                   NA
food processing           NA            .39                  .70
iron and steel            NA            .02                  .58
other manufacturing       NA           1.11                 1.04
other nonmetallic         NA            .41                  .75
pulp paper wood           NA            .96                   NA
subsector       tech_change_all   tech_change_elec    tech_change_no_elec
boilers                0                0.0                1.0
boilers_CHP            0                0.0                1.0
electrochemical        0                1.0                0.0
feeedstocks            0                0.0                0.0
machine drive          0                1.0                0.0
process heat           0                0.0                1.0
other uses             0                0.5                0.5
我需要以某种方式组合这两个数据帧,以便有一个来自
tech\u change\u supply
的supplysector列和一个来自
tech\u change\u service
的subsector列,其中每个supplysector都有每个subsector(即“Aluminal”重复7次,每个subsector匹配一次)。此外,我需要维护技术变更所有、技术变更电气和技术变更无电气,并使用每个供应商部门的值乘以这些值,但“其他用途”除外,我需要技术变更电气和技术变更无电气的平均值。例如:

supplysector   subsector          tech_change_all   tech_change_elec    tech_change_no_elec
aluminum        boilers                  0                 0                  .77
aluminum        boilers_CHP              0                 0                  .77
aluminum        electrochemical          0                .26                  0
aluminum        feedstocks               0                 0                   0
aluminum        machine drive            0                .26                  0
aluminum        process heat             0                 0                  .77    
aluminum        other uses               0                .515                .515
这也需要使用base R或dplyr 0.8.1、tidyr 0.8.3来完成。谢谢大家!

数据:


我们可以使用交叉连接将所有组合中的数据放在一起
dplyr
通过使用带有
by=character()
full\u连接来启用交叉连接(所有行的组合)


在此基础上,您可以根据需要使用普通的
变异
操作进行乘法/平均运算。我将把这个留给你-小心你的
NA
值。您可以使用
select(-ends_with(“.supply”)、-ends_with(“.service”)
来删除所有未转换的列。

您是否尝试过使用命令aggregate来组合这两列?@domiziano我使用aggregate在单个数据帧中创建组合,但当组合两个独立的数据帧时就不行了。@GregorThomas谢谢!编辑标题。
together = full_join(tech_change_supply, tech_change_service, by = character(), suffix = c(".supply", ".service"))