2017-08-09 82 views
1

我试图将长度为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 

回答

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