【问题标题】:Warning message: In if (data$body > 0) { : the condition has length > 1 and only the first element will be used [duplicate]警告消息:在 if (data$body > 0) { 中:条件的长度 > 1 并且只会使用第一个元素 [重复]
【发布时间】:2016-11-29 09:21:11
【问题描述】:

我立即为许多人已经问过这个事实而道歉。

我需要你们的帮助,伙计们。

我有 data.frame,它有一个“body”列。如果body> 0,我们按照相同的规则计算两列,如果'body'

在我的代码有问题的部分之后提出这个概念:

if(data$body > 0){
  data$shadow.up <- data$High - data$Close
  data$shadow.down <- data$Open - data$Low 
}else{
  data$shadow.up <- data$High - data$Open 
  data$shadow.down <- data$Close - data$Low 
}

【问题讨论】:

  • data$body 是一个向量,因此它说“条件的长度 > 1”并且只会使用要在 if 语句中使用的向量的第一个元素

标签: r warnings


【解决方案1】:

您想尝试以下解决方案:

data$shadow.up &lt;- ifelse(data$body &gt; 0, data$High - data$Close, data$High - data$Open) data$shadow.down &lt;- ifelse(data$body &gt; 0, data$Open - data$Low, data$Close - data$Low)

在您的解决方案中,if 条件获取一个逻辑向量,它将仅使用该向量中的第一个值。

【讨论】:

  • 谢谢你,吉姆!一切正常。
  • 不客气@Funrab ;)
猜你喜欢
  • 2020-05-23
  • 2017-10-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-02-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多