如何引用满足某些条件的另一个值,然后可以将其用于计算中

雏菊

我必须有两个数据框:

测试

Group.1   x
   1     25.5
   2     51
   3     51.5
   4     50
   5     51.5
   6     60 
   ...
   53    35.5

日历

Week   Hours  HourSpent
  1     8.5
  1     8.5
  1      0
  2     8.5
  2     8.5
  2     8.5
  2     8.5
  2     8.5
  2     6.5
  2     8.5
  3     7.0
  3     7.0
  3     8.2
  ...

我想做的是通过执行以下计算来填充Calendar df中的“ HourSpent”列: (('Hours' / 'HourSpent') * 0.79)

我希望能够遍历Calendar df中的每一行,并将该行的“小时”值与匹配的“小时花费”值相除。'HoursSpent'值可以从'Test'df决定...因此,如果Calendar df的'Week'列中的值与'Test'df的'Group.1'列中的任何值匹配,那么我要“测试” df的“ x”列中的对应值就是“小时花费”值。

例如

日历df中的第1行将是8.5 / 25.5 * 0.79...,这将应用于前3行,因为星期数是1。然后,当我们到达第4行时,计算将更改为8.5/ 51 * 0.79等等。

所需的输出-日历df

Week   Hours  HourSpent
  1     8.5     0.2633
  1     8.5     0.2633
  1      0        0
  2     8.5     0.1317
  2     8.5     0.1317
  2     8.5     0.1317
  2     8.5     0.1317
  2     8.5     0.1317
  2     6.5     0.1007
  2     8.5     0.1317
  3     7.0     0.1074
  ...

尝试过的代码

for (i in 1:nrow(Calendar)){

 Calendar$'HourSpent' <- ifelse(Calendar$Week == Test$Group.1, 
 (Calendar$Hours/Test$x)*0.79, 
 0)

}

问题是这似乎只适用于一行,然后其他所有内容都为0 ...是否有更好的解决方案?

非常感谢

杜诺瓦

基本R解决方案:

Test <- data.frame(Group.1 = 1:4, x = runif(4)*100, stringsAsFactors = FALSE)
Calendar <- data.frame(Week = sort(sample(1:4, 10, replace = TRUE)), Hours = runif(10)*100, HourSpent = NA, stringsAsFactors = FALSE)

head(Test)
# Group.1         x
# 1       1  7.163006
# 2       2 55.743758
# 3       3 48.983705
# 4       4 49.429236

head(Calendar)
# Week    Hours HourSpent
# 1    1 41.22831         NA
# 2    1 68.30103         NA
# 3    1 65.34278         NA
# 4    2 91.59863         NA
# 5    2 81.31131         NA
# 6    2 67.58900         NA

names(Test)[which(names(Test) == "Group.1")] <- "Week"

Calendar <- merge(Calendar, Test, by = "Week", all.x  = TRUE)

Calendar$HourSpent <- ((Calendar$Hours/Calendar$x) * 0.79)

head(Calendar)
# Week    Hours HourSpent         x
# 1    1 41.22831  4.5470251  7.163006
# 2    1 68.30103  7.5328452  7.163006
# 3    1 65.34278  7.2065835  7.163006
# 4    2 91.59863  1.2981349 55.743758
# 5    2 81.31131  1.1523431 55.743758
# 6    2 67.58900  0.9578707 55.743758

我想

我想做的是通过执行以下计算来填充Calendar df中的“ HourSpent”列:(('Hours'/'HourSpent')* 0.79)

有错字吗?因为那需要解决某种形式的东西Hours - HourSpent^2 = 0

编辑:

而且,使用a并没有错for loop(特别是如果您是初学者;但这在大型数据集上可能会很慢)。因此,for loop如果我们正确充实其逻辑,这就是您的样子:

for(i in 1:nrow(Calendar)){
  
  for(j in 1:nrow(Test)){
    
    if(Calendar$Week[i] == Test$Group.1[j] & is.na(Calendar$HourSpent[i])){
      
      Calendar$HourSpent[i] <- ((Calendar$Hours[i]/Test$x[j]) * 0.79)
      
    }
    
  }
  
}

(基本思想:如果Week值和Group.1值相等/相同,并且HourSpent尚未填写相应的列,则计算HourSpent。)

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何从一个脚本中获取变量的值,然后将其导入另一个脚本中?

来自分类Dev

R:在满足条件的行中查找一个值,向该值添加某些数字,然后在该行的另一列中创建一条消息

来自分类Dev

满足某些条件时如何执行另一个python程序?

来自分类Dev

如果满足某些条件,如何从另一个字典创建字典

来自分类Dev

如果满足某些条件,如何从另一个字典创建字典

来自分类Dev

根据R中的另一个系列在满足某些条件的线上绘制点

来自分类Dev

如何从一个表中选择一个值,而在另一个表中满足两个单独的条件对

来自分类Dev

如何创建引用另一个表中另一列的计算列?

来自分类Dev

如果满足条件,如何进入android中的另一个活动?

来自分类Dev

如何仅删除满足 R 中另一个条件的重复项?

来自分类Dev

从textarea中获取一个值,然后将其粘贴到另一个窗口中?

来自分类Dev

从表中获取一个值,然后将其分配给另一个,不再重复

来自分类Dev

如何从一个观测值中获取数据并将其应用于组中的另一个观测值?

来自分类Dev

如何从文件中剪切某些文本并将其写入另一个文件

来自分类Dev

无法使创建的python函数返回一个值,然后我可以将其用于其他计算

来自分类Dev

在R中如何计算一个值出现并满足多个条件的次数

来自分类Dev

当另一个的值满足条件时,使用向量中的值填充数据框

来自分类Dev

如果满足条件,则自动从另一个表中填充一个表

来自分类Dev

传递JavaScript计算以形成隐藏的输入,然后将其发布到另一个页面

来自分类Dev

如果在另一个单元格中满足某些条件,则在一个单元格中计数

来自分类Dev

如何做一个优先查询工作(一个值优于另一个,如果条件满足)

来自分类Dev

拆分一个字符串,然后将其更改为十进制并将其乘以另一个表中的值

来自分类Dev

QLikVIew在另一个计算维中引用一个计算维

来自分类Dev

如何从数组中提取数字值,然后将其与另一个字符串组合?

来自分类Dev

如果满足条件,则R跳到下一行,然后检查另一个条件

来自分类Dev

如何从另一个表获取引用值?

来自分类Dev

如何基于Pandas中的另一个DataFrame更改DataFrame的某些列中的值

来自分类Dev

过滤字典以包含满足特定条件的另一个字典中的值

来自分类Dev

我正在尝试让excel从一个工作表中提取数据并在满足某些条件的情况下将其列出在另一工作表中

Related 相关文章

  1. 1

    如何从一个脚本中获取变量的值,然后将其导入另一个脚本中?

  2. 2

    R:在满足条件的行中查找一个值,向该值添加某些数字,然后在该行的另一列中创建一条消息

  3. 3

    满足某些条件时如何执行另一个python程序?

  4. 4

    如果满足某些条件,如何从另一个字典创建字典

  5. 5

    如果满足某些条件,如何从另一个字典创建字典

  6. 6

    根据R中的另一个系列在满足某些条件的线上绘制点

  7. 7

    如何从一个表中选择一个值,而在另一个表中满足两个单独的条件对

  8. 8

    如何创建引用另一个表中另一列的计算列?

  9. 9

    如果满足条件,如何进入android中的另一个活动?

  10. 10

    如何仅删除满足 R 中另一个条件的重复项?

  11. 11

    从textarea中获取一个值,然后将其粘贴到另一个窗口中?

  12. 12

    从表中获取一个值,然后将其分配给另一个,不再重复

  13. 13

    如何从一个观测值中获取数据并将其应用于组中的另一个观测值?

  14. 14

    如何从文件中剪切某些文本并将其写入另一个文件

  15. 15

    无法使创建的python函数返回一个值,然后我可以将其用于其他计算

  16. 16

    在R中如何计算一个值出现并满足多个条件的次数

  17. 17

    当另一个的值满足条件时,使用向量中的值填充数据框

  18. 18

    如果满足条件,则自动从另一个表中填充一个表

  19. 19

    传递JavaScript计算以形成隐藏的输入,然后将其发布到另一个页面

  20. 20

    如果在另一个单元格中满足某些条件,则在一个单元格中计数

  21. 21

    如何做一个优先查询工作(一个值优于另一个,如果条件满足)

  22. 22

    拆分一个字符串,然后将其更改为十进制并将其乘以另一个表中的值

  23. 23

    QLikVIew在另一个计算维中引用一个计算维

  24. 24

    如何从数组中提取数字值,然后将其与另一个字符串组合?

  25. 25

    如果满足条件,则R跳到下一行,然后检查另一个条件

  26. 26

    如何从另一个表获取引用值?

  27. 27

    如何基于Pandas中的另一个DataFrame更改DataFrame的某些列中的值

  28. 28

    过滤字典以包含满足特定条件的另一个字典中的值

  29. 29

    我正在尝试让excel从一个工作表中提取数据并在满足某些条件的情况下将其列出在另一工作表中

热门标签

归档