如何添加两个向量而不在R中重复?
在R中有两个大小不同的向量,我想把它们相加,但不要重复较短的一个,相反,我希望“缺失”的数字是零 例如:如何添加两个向量而不在R中重复?,r,vector,R,Vector,在R中有两个大小不同的向量,我想把它们相加,但不要重复较短的一个,相反,我希望“缺失”的数字是零 例如: x<-c(1,2) y<-c(3,4,5) z<-x+y x我会使它们的长度相等,然后将它们相加: > length(x) <- length(y) > x [1] 1 2 NA > x + y [1] 4 6 NA > x[is.na(x)] <- 0 > x + y [1] 4 6 5 >长度(x)x [1] 1
x<-c(1,2)
y<-c(3,4,5)
z<-x+y
x我会使它们的长度相等,然后将它们相加:
> length(x) <- length(y)
> x
[1] 1 2 NA
> x + y
[1] 4 6 NA
> x[is.na(x)] <- 0
> x + y
[1] 4 6 5
>长度(x)x
[1] 1 2 NA
>x+y
[1] 4.6 NA
>x[is.na(x)]x+y
[1] 4 6 5
或者,作为一种功能:
add.uneven <- function(x, y) {
l <- max(length(x), length(y))
length(x) <- l
length(y) <- l
x[is.na(x)] <- 0
y[is.na(y)] <- 0
x + y
}
> add.uneven(x, y)
[1] 4 6 5
add.unquality就像处理长度不等的向量时的警告:您需要确保它们对齐。如果您不能确定这一点,那么我建议采用另一种方法(例如,找到某种钥匙)。
> `%au%` <- add.uneven
> x %au% y
[1] 4 6 5
x <- c(x, rep(0, length(y)-length(x)))
x + y