R 调用函数没有得到执行

R 调用函数没有得到执行,r,R,我写了一个函数来计算两个向量之间的距离。下面是它的代码 myfu <- function(a=c(a,b),b=c(c,d)) { res <- sqrt((d^2-b^2)-(c^2-a^2)) return(res)} 当你说a=c(a,b),b=c(c,d)时,你给了两个参数默认值。函数只知道a和b,而不知道您提供的默认参数。我认为@neilfws的答案会起作用,或者你也可以这样索引a和b: myfu <- function(a, b){ # check a and

我写了一个函数来计算两个向量之间的距离。下面是它的代码

myfu <- function(a=c(a,b),b=c(c,d))
{
res <- sqrt((d^2-b^2)-(c^2-a^2))
return(res)}
当你说
a=c(a,b),b=c(c,d)
时,你给了两个参数默认值。函数只知道
a
b
,而不知道您提供的默认参数。我认为@neilfws的答案会起作用,或者你也可以这样索引
a
b

myfu <- function(a, b){
  # check a and b length
  if (length(a) !=2 & length(b) != 2)
    return(NA)
  res <- sqrt((b[2]^2-a[2]^2)-(b[1]^2-a[1]^2))
  return(res)}
myfu当你说
a=c(a,b),b=c(c,d)
时,你给了两个参数默认值。函数只知道
a
b
,而不知道您提供的默认参数。我认为@neilfws的答案会起作用,或者你也可以这样索引
a
b

myfu <- function(a, b){
  # check a and b length
  if (length(a) !=2 & length(b) != 2)
    return(NA)
  res <- sqrt((b[2]^2-a[2]^2)-(b[1]^2-a[1]^2))
  return(res)}

myfu如果要将参数作为向量传递,可以使用

myfu1 <- function(a, b) {
      sqrt(diff((b^2 - a^2)))
}

myfu1(c(1, 2), c(5, 8))
#[1] 6

myfu1(c(1, 2), c(6, 8))
#[1] 5

myfu1如果要将参数作为向量传递,可以使用

myfu1 <- function(a, b) {
      sqrt(diff((b^2 - a^2)))
}

myfu1(c(1, 2), c(5, 8))
#[1] 6

myfu1(c(1, 2), c(6, 8))
#[1] 5

myfu1当参数x,y被定义为a,b时,为什么要调用参数x,y的函数?问题中的代码生成与问题中的错误不同的错误。除此之外,我想
myfu当参数x,y被定义为a,b时,为什么要调用参数x,y的函数?问题中的代码生成与问题中的错误不同的错误。除此之外,我认为
myfu