[英]Naming matrix columns within a nested loop in R
我想使用 R 循环生成一个矩阵(出于其他原因,我不想在这种情况下使用向量,这将适用于outer()
),这样列就被标记为i
, j
对应到循环的迭代。 例如, (1,3)
。
我习惯于在循环外启动一个向量,并为其分配NA
或0
。 我知道提前确定尺寸更有效。 但是我不想在这种类型的更复杂的问题中确定维度,并且在循环中我不知道如何填充向量。 通常我会将它编码为vector[i] <- new value to add
,但在这里我正在处理两个索引i
和j
,如果我像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
最简单的答案是改变
colnames(data) = paste("(",i,",",j,")")
到
colnames(data)[ncol(data)] = paste("(",i,",",j,")")
因为您只想更改最后一列(最近添加的列)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.