警告消息:在if(data $ body> 0){:条件有长度> 1,只使用第一个元素

时间:2016-11-29 09:21:12

标签: r warnings

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

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

我有data.frame,它有一个'body'列。如果身体> 0,如果'body'< 0,我们计算相同规则的两列,然后按不同的规则计算。

在我的代码有问题之后引入概念:

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 
}

1 个答案:

答案 0 :(得分:0)

您想尝试以下解决方案:

data$shadow.up <- ifelse(data$body > 0, data$High - data$Close, data$High - data$Open)   data$shadow.down <- ifelse(data$body > 0, data$Open - data$Low, data$Close - data$Low)

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