在R中的嵌套循环中命名矩阵列

时间:2016-05-27 17:27:56

标签: r loops

我想使用R循环生成一个矩阵(出于其他原因,我不想在这种情况下使用向量,这将适用于outer()),这样列标记为对应于循环迭代的对ij。例如,(1,3)

我习惯在循环外部启动向量,并为其分配NA0。我知道提前确定尺寸更有效。但是我不想在这种类型的更复杂的问题中确定维度,并且在循环内我不知道如何填充向量。通常我会将其编码为vector[i] <- new value to add,但在这里我正在处理两个索引ij,如果我将其编入索引vector[i,j] <- new value to add我相信R会混淆思考矩阵。

以下是非工作代码:

x1=c(1,4,2,5,6)
x2=c(5,3,7,7,8)
data=data.frame(x1,x2)
data=as.matrix(data)
n = 6 # polynomial degree

for(i in 1:n){
  for(j in 0:n){
    data = cbind(data,data[,1]^(i-j) * data[,2]^j)
    colnames(data) = paste("(",i,",",j,")")
  }
}

data

1 个答案:

答案 0 :(得分:1)

最简单的答案是改变

colnames(data) = paste("(",i,",",j,")")

colnames(data)[ncol(data)] = paste("(",i,",",j,")")

因为您只想更改最后一列(最近添加的一列)。