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

Warning message: In if (data$body > 0) { : the condition has length > 1 and only the first element will be used

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

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

我有 data.frame,其中有一个 'body' 列。如果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 
}

您想尝试以下解决方案:

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 条件获取一个逻辑向量,它将仅使用该向量中的第一个值。