Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何添加两个向量而不在R中重复?_R_Vector - Fatal编程技术网

如何添加两个向量而不在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

在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 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