2017-05-13 5 views
0

背景でない場合は「a」と「b」の長さが同じになるようにしてください:

は、私はまったく同じであることをその引数のlengthを必要機能があるとししかし、機能のユーザーが2つの引数には2つの不均等な長さの提供の場合にはは、彼らがR

質問

はR が長い引数のlengthが同じであることを「短縮」ということは可能です短い方のlength?概略的な例として

、と仮定する引数 "A" および "B" は、機能sdfで同じlengthでなければならない(下記参照)。 しかし私は誤って引数 "b"の長さを長くします。 Rは短い引数(ここでは「a」)の長さを評価し、長い引数(ここでは「b」)を「a」と同じlengthにすることはできますか?

(「R」は「b」の末尾から降りて、「b」の長さを「a」と同じにすることができます) AとBを想定すると

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

は、あなたがそうのような長いベクトルの終わりを切り落とすことができ、両方のベクトルです:

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 

希望これは、あなたの質問に答えます!