编写一个函数,我遇到了一个错误,我意识到它来自一个变量,在我为其赋值之后保留了它的旧值。导致错误的原始代码看起来像这样。 num是函数的参数
if ( num == "best" )
{ num <- as.numeric(1) }
错误在代码中出现,因为num的值没有更改为1.当我将代码更改为以下内容时,错误就消失了。
if ( num == "best" )
{ rank <- as.numeric(1) }
将我希望稍后在代码中使用的新值分配给新变量修复了问题。这笔交易是什么?我很确定我之前已经替换了变量的值而没有出现这个问题......在这种情况下R是否存在不一致的行为?事实上num是函数的一个参数,在这个函数中,这段代码是答案的一部分吗?
答案 0 :(得分:0)
您收到错误,因为如果只能评估长度为1的逻辑向量。 我想你的&#34; num&#34; vector的长度大于1,你需要通过循环来完成它。以下内容允许您浏览num矢量并根据您的条件进行任何更改。
length(num)
for(i in 1:length(num))
{
if ( num[i] =="best")
{num[i]= 1}
}