如何绑定不同长度的向量而不重复R中较小向量的元素?

我们可以使用cbind按列连接向量,而这些向量的长度是否相同也没关系。如果向量的长度相同,则将打印两个向量的所有值,但是如果这些向量的长度不同,则将重复较小向量的值。但是我们可能不想重复较小矢量的值/元素,并且可以通过将较小矢量的长度设置为较大矢量的长度来进行设置,这将在原始矢量不存在的地方在较小的矢量上创建NA值有任何值。

例子1

x1<-c(4,7,8,12)
x2<-1:20
n<-max(length(x1),length(x2))
length(x1)<-n
cbind(x1,x2)

输出结果

 x1 x2
[1,] 4 1
[2,] 7 2
[3,] 8 3
[4,] 12 4
[5,] NA 5
[6,] NA 6
[7,] NA 7
[8,] NA 8
[9,] NA 9
[10,] NA 10
[11,] NA 11
[12,] NA 12
[13,] NA 13
[14,] NA 14
[15,] NA 15
[16,] NA 16
[17,] NA 17
[18,] NA 18
[19,] NA 19
[20,] NA 20

例子2

y1<-c("A","B","C","D","E")
y2<-LETTERS[1:20]
n<-max(length(y1),length(y2))
length(y1)<-n
cbind(y1,y2)

输出结果

y1 y2
[1,] "A" "A"
[2,] "B" "B"
[3,] "C" "C"
[4,] "D" "D"
[5,] "E" "E"
[6,] NA "F"
[7,] NA "G"
[8,] NA "H"
[9,] NA "I"
[10,] NA "J"
[11,] NA "K"
[12,] NA "L"
[13,] NA "M"
[14,] NA "N"
[15,] NA "O"
[16,] NA "P"
[17,] NA "Q"
[18,] NA "R"
[19,] NA "S"
[20,] NA "T"

例子3

z1<-1:20
z2<-16:20
n<-max(length(z1),length(z2))
length(z2)<-n
cbind(z1,z2)

输出结果

z1 z2
[1,] 1 16
[2,] 2 17
[3,] 3 18
[4,] 4 19
[5,] 5 20
[6,] 6 NA
[7,] 7 NA
[8,] 8 NA
[9,] 9 NA
[10,] 10 NA
[11,] 11 NA
[12,] 12 NA
[13,] 13 NA
[14,] 14 NA
[15,] 15 NA
[16,] 16 NA
[17,] 17 NA
[18,] 18 NA
[19,] 19 NA
[20,] 20 NA
猜你喜欢