视频: 淨空法師:【幸災樂禍,沒同情心,來生會受一樣的不幸】 2024
错误和警告在R中有不同的功能你不能避开错误,因为它们只是停止你的代码。另一方面警告是一个完全不同的野兽。即使R发出警告,它仍然继续执行代码。你可以忽略警告,但通常这是一个非常糟糕的主意。警告往往是唯一的迹象,你的代码有一些语义或逻辑错误。
<!例如,你可能已经忘记了ifelse()函数,并尝试类似下面的例子: >> xy < - if(x <5)0 else 1警告消息:在if(x 1,只有第一个元素将被使用这个警告指向一个语义错误:如果期望一个单一的TRUE或FALSE值,但是你提供了一个完整的向量,注意,就像错误一样,警告告诉你一般来说哪些代码已经产生了警告。
<! - 2 - >
下面是另外一个警告,它会定期弹出,并可能指向代码中的语义或逻辑错误: >> x sqrt (x - 5)[1] NaN警告信息:sqrt(x-5):产生的NaNs
因为当x是4时x - 5是负的,R不能计算平方根,并且警告一个负数不是一个数(NaN)如果你是一个数学家,你可能会指出-1的平方根是0 - 1i,实际上R可以对复数进行计算,但是那么你必须把你的变量定义为复数你可以检查,例如,帮助文件?复杂的更多信息。
尽管大多数警告是由代码中的语义或逻辑错误产生的,但即使是简单的语法错误也可以产生警告而不是错误。如果你想在R中绘制一些点,你可以使用plot()函数。它使用一个参数col来指定点的颜色,但是您可能会错误地尝试使用以下方法对点进行着色: >>绘图(1:10,10:1,color =“green”)
如果你试试这个,你一次得到六个警告信息,都告诉你,颜色可能不是你想要的参数名称:
警告信息:1:在情节。窗口(…):“颜色”不是图形参数2:在绘图中。 xy(xy,type,…):“color”不是图形参数…
注意,警告消息不会指向您在命令行键入的代码;相反,他们指向你从未使用过的功能,如情节。窗口()和阴谋。 XY()。您可以使用点参数将参数从一个函数传递到另一个函数。这正是plot()在这里所做的。因此,plot()本身不会产生警告,但是每个函数plot()都会将颜色参数传递给函数。
<!如果您收到警告或错误消息,仔细查看产生错误的功能的帮助页面可以帮助您确定收到消息的原因。例如,在“帮助”页面?情节。 xy,你会发现参数的正确名称是col。因此,总结一下,大多数警告指出了以下问题之一:
函数给了你一个结果,但由于某种原因,结果可能不正确。
函数产生非典型结果,如NA或NaN值。
函数不能处理一些参数,而忽略它们。
只有最后一个告诉你,你的语法有问题。对于其他的,你必须更多地检查你的代码。