R 将罗盘点转换为相应方向

R 将罗盘点转换为相应方向,r,function,R,Function,我在R中创建了一个函数,将罗盘点转换为相应的风向。函数如下所示 windDirectionClassifier <- function(x) { if(x == 1) y <- "North" if(x == 2) y <- "North North East" if(x == 3) y <- "North East" if(x == 4) y <- "East North Ea

我在R中创建了一个函数,将罗盘点转换为相应的风向。函数如下所示

windDirectionClassifier <- function(x) { 
  if(x == 1) y <- "North"
  if(x == 2) y <- "North North East"
  if(x == 3) y <- "North East"
  if(x == 4) y <- "East North East"
  if(x == 5) y <- "East"
  if(x == 6) y <- "East South East"
  if(x == 7) y <- "South East"
  if(x == 8) y <- "South South East"
  if(x == 9) y <- "South"
  if(x == 10) y <- "South South West"
  if(x == 11) y <- "South West"
  if(x == 12) y <- "West South West"
  if(x == 13) y <- "West"
  if(x == 14) y <- "West North West"
  if(x == 15) y <- "North West"
  if(x == 16) y <- "North North West"
  return(y)
}

windDirectionClassifier非常感谢各位。根据“srishtigarg”的建议,我进行了检查,发现数据中存在错误的“0”值。谢谢。

您必须定义一个y值,它可能是虚拟的,比如在这个if块的开始处y=0。如果您可以附加完整的代码段,这将有助于解决问题。谢谢函数可能收到的输入超出了为if条件定义的1-16范围,例如
x=0
,这就是函数无法返回y的原因。正如@srishtigarg所建议的,您需要在if块的开头定义
y=0
。另外,请提供函数的完整或简化版本以及预期的输入。防御性编程:在给定原始输入的情况下,将函数设计为做您想做的事情,然后在调用方提供其他内容时做什么。在这种情况下,我将使用
y启动函数