5

我有一个相对简单的问题,我的同事和我都无法弄清楚。我有一个值向量,我想将其粘贴到数据集中特定列范围内的所有行中。

如果我逐行分配值,则以下代码有效:

data[1, 1:10] <- myvector
data[2, 1:10] <- myvector

如果我尝试在总行数上分配值,则相同的代码将无法正常工作:

data[1:nrows(data), 1:10] <-myvector

看起来向量中的值是垂直填充的,而不是水平填充的。我们想出的最好的方法是一种解决方法,考虑到我的数据中有 20,000 行,这并不理想。

for (i in 1:nrow(data)){
     data[i, 1:10] <-myvector
}

必须有一些简单的解释来解释什么是错的。请帮忙!

4

1 回答 1

9

如您所见,将向量分配给这样的矩阵会垂直填充它们。但是您可以通过分配适当的向量来解决此问题:

 data[, 1:10] = rep(myvector, each=NROW(data))
于 2012-07-11T00:55:03.830 回答