我有一个相对简单的问题,我的同事和我无法弄清楚。我有一个值向量,我想将其粘贴到某个列范围内的数据集中所有行。
如果我逐行分配值,则以下代码有效:
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
}
对于什么是错误,必须有一些简单的解释。请帮忙!
答案 0 :(得分:7)
将矢量分配给矩阵,就像你观察到的一样,将它们垂直填充。但是你可以通过分配适当的向量来解决这个问题:
data[, 1:10] = rep(myvector, each=NROW(data))