2017-08-09 37 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