I have a relatively simple question that my colleagues and I cannot figure out. I have a vector of values that I would like to paste into all of the rows in my dataset within a certain range of columns.
The following code works if I assign values row by row:
data[1, 1:10] <- myvector
data[2, 1:10] <- myvector
If I attempt to assign values over the total number of rows, the same code doesn't work correctly:
data[1:nrows(data), 1:10] <-myvector
It appears that the values in the vector are being filled in vertically, rather than horizontally. The best we've come up with is a workaround, which is not ideal given that I have 20,000 rows in my data.
for (i in 1:nrow(data)){
data[i, 1:10] <-myvector
}
There must be some simple explanation for what is wrong. Please help!
Assigning a vector to a matrix like that fills them in vertically, as you observed. But you can work around this by assigning the appropriate vector:
data[, 1:10] = rep(myvector, each=NROW(data))
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With