访问矩阵的列/行名称

时间:2014-05-01 17:17:39

标签: r for-loop matrix

在R中,我使用for循环遍历大数据帧,尝试将第i列第3行中的整数放入另一个矩阵中的特定索引中。特定索引对应于大数据帧中的索引(同样在* i *行中,而是在第2和第4列中)。例如,假设我的数据框有data_frame[1,2]=5data_frame[1,4]=12data_frame[1,7]=375。我想将375放入索引中的矩阵中,其中行的名称为5,列的名称为12.

然而,问题(我认为)是当我执行col_index=which(colnames(matrix)==data_frame[1,2])时,它返回整数0.列名在技术上是5,但我注意到它只有在col_index=which(colnames(matrix)=="5")时才有效。如何确保(在我的for循环中)data_frame[i,2]对应于" 5"?

对不起,忘了举个例子。

数据保存为" out" 我希望将数据放入的矩阵称为" m"

m=matrix(nrow=87,ncol=87)
fips=sprintf("%03d",seq(1,173,by=2))
colnames(m)=fips
rownames(m)=fips
m[1:40,1:40]

接下来,

的条件
for(i in 8:2446)
{
if(out[i,3]==27)
{
out_col=out[i,4]
out_row=out[i,2]
moves=out[i,7]
col_index=which(colnames(m)==paste(out_col))
row_index=which(rownames(m)==paste(out_row))
m[row_index,col_index]=moves
}
}

很抱歉没有格式化。它将数字放在矩阵中,但它们不是正确的数字,我无法弄清楚错误是什么。任何帮助将不胜感激!

0 个答案:

没有答案