将向量连接到数据帧

时间:2017-08-09 15:33:25

标签: r concatenation

我试图将长度为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 个答案:

答案 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