如果“a”和“b”不在R中,则使其长度相同 背景:
假设我有一个函数,它要求参数的长度完全相同。但如果函数的用户为两个参数提供两个不等的长度: 问题 有没有可能R缩短了较长参数的长度,使其与较短参数的长度相同 作为一个示意图示例,假设参数a和b在函数sdf中必须具有相同的长度,请参见下文。但是我不小心把参数b的长度弄长了。R是否可以计算此处较短参数a的长度,然后使此处较长参数b的长度与a的长度相同 也许R可以从b的末端下降,使b的长度等于a如果“a”和“b”不在R中,则使其长度相同 背景:,r,function,R,Function,假设我有一个函数,它要求参数的长度完全相同。但如果函数的用户为两个参数提供两个不等的长度: 问题 有没有可能R缩短了较长参数的长度,使其与较短参数的长度相同 作为一个示意图示例,假设参数a和b在函数sdf中必须具有相同的长度,请参见下文。但是我不小心把参数b的长度弄长了。R是否可以计算此处较短参数a的长度,然后使此处较长参数b的长度与a的长度相同 也许R可以从b的末端下降,使b的长度等于a sdf = function(a, b) { if(length(a) != length(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)
假设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
希望这能回答你的问题