错误:“}中出现意外'}'

时间:2015-05-25 04:36:26

标签: r trigonometry

我正在尝试构建一个函数来计算幅度和方向 矢量运算。为了解决在pi / 2和-pi / 2域内反向触发功能被限制的问题,如果e小于0,我需要向e添加2pi。但是我遇到了“错误:意外”} 'in“}”一旦我添加了if else行。是否有人能够向我解释原因?

vectorMD <- function(x){
    c=x[1:2]-x[3:4]
    mt  <- function(x) {round(sqrt(sum(x^2)),1)}
    d <- round(mt(c),1)
    e <- round(atan(c[2]/c[1]),1)
if(e < 0){e <- e+2*2pi
    return(e)} 
paste("magnitude =",d,"direction =",e)
}

2 个答案:

答案 0 :(得分:1)

如果条件你必须给2 * pi而不是2pi,因为pi已经是3.14这样的值你不能指定为2pi,就像23.14所以你必须指定它有2 * pi就像2 * 3.14

代码:

vectorMD <- function(x){
    c=x[1:2]-x[3:4]
    mt  <- function(x) {round(sqrt(sum(x^2)),1)}
    d <- round(mt(c),1)
    e <- round(atan(c[2]/c[1]),1)
    if(e < 0){e <- e+2*2*pi
        return(e)} 
    paste("magnitude =",d,"direction =",e)
   }

答案 1 :(得分:0)

试试这个,把功能&#34; mt&#34;功能之外&#34;矢量&#34;。

mt  <- function(x) 
{
    round(sqrt(sum(x^2)),1)
}

vectorMD <- function(x)
{
    c=x[1:2]-x[3:4]

    d <- round(mt(c),1)
    e <- round(atan(c[2]/c[1]),1)

    if(e < 0)
    {
        e <- e+2*2pi
        return(e)
    }

    paste("magnitude =",d,"direction =",e)
}