如何在R语言中使用cbind处理不同长度的向量(附实例)

473 阅读1分钟

在R中对不同长度的向量使用cbind的最简单方法是用**length()**函数将向量设置为相等的长度。

下面的例子展示了如何做到这一点。

例子:在R语言中使用cbind处理不同长度的向量

假设我们使用cbind将R中两个不同长度的向量列捆绑在一起:

#define two vectors
vec1 <- c(3, 4, 5)
vec2 <- c(1, 6, 4, 4, 7, 6, 9, 8, 7)

#cbind the two vectors together
cbind(vec1, vec2)

      vec1 vec2
 [1,]    3    1
 [2,]    4    6
 [3,]    5    4
 [4,]    3    4
 [5,]    4    7
 [6,]    5    6
 [7,]    3    9
 [8,]    4    8
 [9,]    5    7

cbind函数对这两个向量起作用,但注意到第一个向量的值只是不断地重复。

这在R语言中被称为 "循环"。

为了用NA值来填补短向量的缺失值,你可以使用以下语法:

#define two vectors
vec1 <- c(3, 4, 5)
vec2 <- c(1, 6, 4, 4, 7, 6, 9, 8, 7)

#calculate max length of vectors
max_length <- max(length(vec1), length(vec2))

#set length of each vector equal to max length
length(vec1) <- max_length                      
length(vec2) <- max_length 

#cbind the two vectors together
cbind(vec1, vec2)

      vec1 vec2
 [1,]    3    1
 [2,]    4    6
 [3,]    5    4
 [4,]   NA    4
 [5,]   NA    7
 [6,]   NA    6
 [7,]   NA    9
 [8,]   NA    8
 [9,]   NA    7

注意,短向量的缺失值现在被填上了NA值。

注意:在这个例子中,我们使用了两个向量的cbind,但是你可以使用类似的语法来使用两个以上的向量的cbind