我在循环中使用下面的代码,我只是复制了我面临问题的部分。整个代码非常长,并且我已经删除了在两者之间运行良好的部分这些线。这只是说明问题:在r中替代分配函数
for (j in 1:2)
{
assign(paste("numeric_data",j,sep="_"),unique_id)
for (i in 1:2)
{
assign(paste("numeric_data",j,sep="_"),
merge(eval(as.symbol(paste("numeric_data",j,sep="_"))),
eval(as.symbol(paste("sd_1",i,sep="_"))),all.x = TRUE))
}
}
,我现在面临的问题是不是在第二步中分配,我想
for (j in 1:2)
{
assign(paste("numeric_data",j,sep="_"),unique_id)
for (i in 1:2)
{
eval(as.symbol((paste("numeric_data",j,sep="_"))))<-
merge(eval(as.symbol(paste("numeric_data",j,sep="_"))),
eval(as.symbol(paste("sd_1",i,sep="_"))),all.x = TRUE)
}
}
但是[R不使用(EVAL +粘贴)在分配新变量时不接受eval。我看了论坛,并且无处不在分配建议解决问题。但是,如果我使用assign循环覆盖我以前生成的“numeric_data”而不是添加到它,因此我得到的只有一个值的输出,而不是两者。
我不确定我会考虑使用'eval'“normal”。 – nrussell
当然,让我删除该注释 – Shaz
您不必删除它;我的意思是,你为什么要特意使用'eval'? – nrussell