假设我有函数,要求 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)
答案 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
希望这能回答你的问题!