基于其他列将列中的值相乘

Chaturvedi Dewashish

我是R的新手。
我想乘以数据帧的列。这种类型的问题必须非常基础,但是我是RI的新手,因为输入数据如下

Id  Name    quantity
Id1 Name1   200
Id2 Name2   300
Id3 Name3   500
Id4 Name4   400


Name    BonusMultiplier
Name1       1
Name2       2
Name3       3
Name4       2

Date        Name1   Name2   Name3   Name4
12/3/2014   20.5    200.3   56.3    550.6   
12/2/2014   21.5    180.3   60.5    556.2
12/1/2014   19.6    190.0   61.6    559.6
11/30/2014  15.6    195.6   62.6    580.8

我想要的输出应该像

Date        Name1       Name2           Name3       Name4
12/3/2014   20.5*200*1  200.3*300*2     56.3*500*3  550.6*400*2
12/2/2014   21.5*200*1  180.3*300*2     60.5*500*3  556.2*400*2
12/1/2014   19.6*200*1  190.0*300*2     61.6*500*3  559.6*400*2
11/30/2014  15.6*200*1  195.6*300*2     62.6*500*3  580.8*400*2

编辑

如果输出像

Date        Id1          Id2            Id3          Id4
12/3/2014   20.5*200*1  200.3*300*2     56.3*500*3  550.6*400*2
12/2/2014   21.5*200*1  180.3*300*2     60.5*500*3  556.2*400*2
12/1/2014   19.6*200*1  190.0*300*2     61.6*500*3  559.6*400*2
11/30/2014  15.6*200*1  195.6*300*2     62.6*500*3  580.8*400*2
阿克伦

您可以尝试Map(假设数据集是有序的)

df3[,-1] <- Map(function(x,y,z) x*y*z, 
          df3[,-1], df2$BonusMultiplier, df1$quantity)

df3
#        Date Name1  Name2 Name3  Name4
#1  12/3/2014  4100 120180 84450 440480
#2  12/2/2014  4300 108180 90750 444960
#3  12/1/2014  3920 114000 92400 447680
#4 11/30/2014  3120 117360 93900 464640

另一种选择是在将第三个数据集转换为格式merge(使用Reduce)数据集,然后使用创建,最后将表单转换格式longmeltmutlipliedtransformlongwidedcast

library(reshape2)
lst <- list(setNames(melt(df3, id.var='Date'), 
                c('Date', 'Name', 'value')), df1, df2)

 dcast(
      transform(
         Reduce(function(...) merge(..., by='Name'), lst),
           value=value*quantity*BonusMultiplier)[,1:3],
                          Date~Name, value.var='value')

数据

df1 <- tructure(list(Id = 1:4, Name = c("Name1", "Name2", "Name3", 
"Name4"), quantity = c(200L, 300L, 500L, 400L)), .Names = c("Id", 
"Name", "quantity"), class = "data.frame", row.names = c(NA, -4L))

df2 <- structure(list(Name = c("Name1", "Name2", "Name3", "Name4"), 
BonusMultiplier = c(1L, 2L, 3L, 2L)), .Names = c("Name", 
"BonusMultiplier"), class = "data.frame", row.names = c(NA, -4L))

df3 <- structure(list(Date = c("12/3/2014", "12/2/2014", "12/1/2014", 
"11/30/2014"), Name1 = c(20.5, 21.5, 19.6, 15.6), Name2 = c(200.3, 
180.3, 190, 195.6), Name3 = c(56.3, 60.5, 61.6, 62.6), Name4 = c(550.6, 
556.2, 559.6, 580.8)), .Names = c("Date", "Name1", "Name2", "Name3", 
"Name4"), class = "data.frame", row.names = c(NA, -4L))

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

基于其他列将列中的值相乘

来自分类Dev

基于R中其他列的列值总和

来自分类Dev

Excel:基于其他列的列中的条件格式值

来自分类Dev

基于其他列值的估算值

来自分类Dev

熊猫多指标基于其他列中的值减去

来自分类Dev

基于列值的其他表中的SQL SELECT数据

来自分类Dev

基于其他列值的汇总

来自分类Dev

基于其他列的值的条件更改

来自分类Dev

基于其他列的 TSQL 聚合值

来自分类Dev

如何基于其他列值将单列值拆分为多列

来自分类Dev

基于某些其他列值将条件值分配给多个列

来自分类Dev

R基于字符串搜索将列值设置为其他列值

来自分类Dev

基于SQL Server中的条件行分组的列值相乘

来自分类Dev

如何基于两列是否包含其他列中存在的值返回值

来自分类Dev

如何基于其他列中的值求和单个列的值?

来自分类Dev

如何使用基于Python中其他列值的值填充列?

来自分类Dev

数据框中的匹配列基于其他数据框中的列中的值

来自分类Dev

如何在Pandas数据框中的其他列中填充基于新列的值

来自分类Dev

将月份间隔除以其他列中的值

来自分类Dev

MySQL更新基于其他列值的增量列

来自分类Dev

基于行中的列值以及df中其他行中的列值创建新列?

来自分类Dev

基于多个其他列的条件式替换数据框列中的值-R

来自分类Dev

如何基于SQL中的其他列值选择布尔列?

来自分类Dev

如何基于其他列的值在data.table中创建新列

来自分类Dev

基于Pandas数据框中其他列的值范围的列总和

来自分类Dev

熊猫:如何创建基于其他列值的条件对其他列求和的列?

来自分类常见问题

如何基于python中其他列的索引值复制相同的值

来自分类Dev

Excel宏基于行中其他两个列的值写入值

来自分类Dev

使用熊猫库基于csv中的其他列值填充空白值

Related 相关文章

  1. 1

    基于其他列将列中的值相乘

  2. 2

    基于R中其他列的列值总和

  3. 3

    Excel:基于其他列的列中的条件格式值

  4. 4

    基于其他列值的估算值

  5. 5

    熊猫多指标基于其他列中的值减去

  6. 6

    基于列值的其他表中的SQL SELECT数据

  7. 7

    基于其他列值的汇总

  8. 8

    基于其他列的值的条件更改

  9. 9

    基于其他列的 TSQL 聚合值

  10. 10

    如何基于其他列值将单列值拆分为多列

  11. 11

    基于某些其他列值将条件值分配给多个列

  12. 12

    R基于字符串搜索将列值设置为其他列值

  13. 13

    基于SQL Server中的条件行分组的列值相乘

  14. 14

    如何基于两列是否包含其他列中存在的值返回值

  15. 15

    如何基于其他列中的值求和单个列的值?

  16. 16

    如何使用基于Python中其他列值的值填充列?

  17. 17

    数据框中的匹配列基于其他数据框中的列中的值

  18. 18

    如何在Pandas数据框中的其他列中填充基于新列的值

  19. 19

    将月份间隔除以其他列中的值

  20. 20

    MySQL更新基于其他列值的增量列

  21. 21

    基于行中的列值以及df中其他行中的列值创建新列?

  22. 22

    基于多个其他列的条件式替换数据框列中的值-R

  23. 23

    如何基于SQL中的其他列值选择布尔列?

  24. 24

    如何基于其他列的值在data.table中创建新列

  25. 25

    基于Pandas数据框中其他列的值范围的列总和

  26. 26

    熊猫:如何创建基于其他列值的条件对其他列求和的列?

  27. 27

    如何基于python中其他列的索引值复制相同的值

  28. 28

    Excel宏基于行中其他两个列的值写入值

  29. 29

    使用熊猫库基于csv中的其他列值填充空白值

热门标签

归档