【问题标题】:How to use vectorization with if conditional logic如何使用带有 if 条件逻辑的向量化
【发布时间】:2018-08-13 09:37:30
【问题描述】:

问题

我是编程新手,遇到条件逻辑问题。在我的函数中,条件的长度> 1,因此只有第一个条件为真的情况才会填充。我将如何实现正确的功能?

输出

对于计数器 = 1 的所有区域,我得到的 BaseQoQ 和 StressQoQ 计算信息不正确。如何修改我的代码,以便为长度 > 1 的条件填充正确的信息?我是 R 新手,因此非常感谢任何见解。

【问题讨论】:

  • 我认为最好发布输入数据和预期输出的样本,而不是详细说明您的代码。请解释图片。
  • 使用范围分配<<- 表示设计欠佳。函数在哪里调用?传递给它的是什么?请备份并在此处向我们提供您任务的整个故事(即,数据是什么以及您要做什么)。否则这读作XY Problem

标签: r function conditional vectorization


【解决方案1】:

R中ifcondition的向量化形式是ifelse,其定义可以在here中找到。在您的示例中,可以有

with(HPF, 
    ifelse(index != 0, 
          case1, 
          case2)
)

请注意,您可能希望将 case1(分别为 case2)分配到独立的函数中,以避免与 ifelse 逗号本身混淆。

【讨论】:

  • 我想根据条件填充相同的向量,stress_index。我将如何实现这一目标?似乎这两个条件会创建两个向量,我只想创建一个。将所有元素
  • 我不明白你的问题:在上面的代码中,如果条件满足,请填写case1,否则case2:为什么会创建两个不同的列?
  • 如果没有您给我们一个最小的可重现示例,那么使用您的代码真的很难。尝试修改您的问题并为我们提供部分数据集,我们可以使用这些数据来重现所有内容,否则答案将是徒劳的。
猜你喜欢
  • 2019-08-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-13
  • 1970-01-01
  • 2019-08-17
  • 2015-10-12
相关资源
最近更新 更多