如果它们不在R

时间:2017-05-13 23:19:27

标签: r function

背景:

假设我有函数,要求 length的参数完全相同但是以防函数的用户为这两个参数提供两个不相等的长度:

问题

R “缩短”较长参数的length是否可能与较短参数的length相同?

作为示意图,假设参数“a”和“b”必须与函数length中的sdf相同(见下文)。 但是我不小心让参数“b”的长度更长。 R可以评估较短参数的长度(此处为“a”),然后使较长的参数(此处为“b”)与“a”具有相同的length吗?

(也许R可以从“b”的末尾掉落,使“b”的长度等于“a”)。

sdf = function(a, b) {

 if(length(a) != length(b)){ message("\n\tMake a and b have the same length equal")   

      } else {a + b}

  }

sdf(a = 2:5, b = 4:9)

1 个答案:

答案 0 :(得分:1)

假设A和B都是向量,你可以像这样砍掉较长向量的末尾:

sdf = function(a, b) {
  if(length(b) > length(a)){
    b = b[1:length(a)]
  }
  else(if(length(a) > length(b)){
    a = a[1:length(b)]})
  return(a+b) #sample return operation
}



> sdf(a = 2:5, b = 4:9)
[1]  6  8 10 12


> sdf(a = 2:10, b = 3:7)
[1]  5  7  9 11 13

希望这能回答你的问题!