在R中,我使用for循环遍历大数据框,尝试将第*列第7列中的整数放入另一个矩阵中的特定索引。特定索引对应于大数据框中的索引(再次在第* i *行中,而是第2和第4列)。例如,假设我的数据帧有data_frame [1,2] = 5,data_frame [1,4] = 12,data_frame [1,7] = 375。我想把375放入索引中的行,其中行的名称为5,列的名称为12.R中的数据框到矩阵
但是,问题(我认为)是当我做col_index = which(colnames(matrix) == data_frame [1,2]),它返回整数0.列名在技术上是5,但我注意到它只适用于我做col_index = which(colnames(matrix)==“5”)。我怎样才能确保(在我的for循环)data_frame [我,2]对应于“5”?
数据被保存为“走出去”我的矩阵,我想将数据放在被称为“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]
接下来,第三列是等于27
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
}
}
条件
对不起格式。它将数字放在矩阵中,但它们不是正确的数字,我无法弄清楚什么是错的。任何帮助将非常感激!