我试图将长度为N x 1的向量(我们称之为y)连接到长度为N x N的矩阵(让我们称之为x).x中的每个值都需要连接到相应的行,确定通过该值在x中的位置。我正在寻找一个不依赖循环的矢量化答案。举例说明:
x <- as.data.frame(matrix(1:100,nrow=10,ncol=10))
y <- c(1:10)
for(k in c(1:(ncol(x)))){
x[k,] <- paste0(y[k],x[k,])
}
V1 V2 V3 V4 V5 V6 V7 V8 V9 V10
11 111 121 131 141 151 161 171 181 191
22 212 222 232 242 252 262 272 282 292
33 313 323 333 343 353 363 373 383 393
44 414 424 434 444 454 464 474 484 494
55 515 525 535 545 555 565 575 585 595
66 616 626 636 646 656 666 676 686 696
77 717 727 737 747 757 767 777 787 797
88 818 828 838 848 858 868 878 888 898
99 919 929 939 949 959 969 979 989 999
1010 1020 1030 1040 1050 1060 1070 1080 1090 10100
答案 0 :(得分:1)
我们可以paste
向量'y'与matrix
('x')并将值分配回'x'
x[] <- paste0(y, as.matrix(x))
x
# V1 V2 V3 V4 V5 V6 V7 V8 V9 V10
#1 11 111 121 131 141 151 161 171 181 191
#2 22 212 222 232 242 252 262 272 282 292
#3 33 313 323 333 343 353 363 373 383 393
#4 44 414 424 434 444 454 464 474 484 494
#5 55 515 525 535 545 555 565 575 585 595
#6 66 616 626 636 646 656 666 676 686 696
#7 77 717 727 737 747 757 767 777 787 797
#8 88 818 828 838 848 858 868 878 888 898
#9 99 919 929 939 949 959 969 979 989 999
#10 1010 1020 1030 1040 1050 1060 1070 1080 1090 10100