0

例如,如果我运行:

cor(rep(1,7), rep(1,7))
Error in cor(rep(1, 7), rep(1, 7)) :
  (converted from warning) the standard deviation is zero
 1: cor(rep(1, 7), rep(1, 7))
 2: .signalSimpleWarning("the standard deviation is zero", quote(cor(rep(1, 7), rep(1, 7))))
 3: withRestarts({
    .Internal(.signalCondition(simpleWarning(msg, call), msg, call))
    .Internal(.dfltWarn(msg, call))
}, muffleWarning = function() NULL)
 4: withOneRestart(expr, restarts[[1]])
 5: doWithOneRestart(return(expr), restart)

当我尝试在 上运行以计算具有相同名称列的两个数据帧中的每一列的相关性时,这是一个sapply问题names(some.data.frame)。大约有 80 列,其中一列的向量为零,导致此崩溃调用,有没有办法避免这种情况并改为输出NA

4

2 回答 2

2

我看起来您设置 R 以使用 options 命令将所有警告转换为错误。

这将使它恢复原状:

options(warn=0)

警告:

设置警告消息的处理。如果警告为负,则忽略所有警告。如果 warn 为零(默认值),则存储警告,直到顶级函数返回。如果发出的警告少于 10 个,它们将被打印出来,否则会显示一条消息,说明发出了多少个警告。创建了一个名为 last.warning 的对象,并且可以通过函数警告打印。如果 warn 为 1,则在出现警告时打印警告。如果 warn 为 2 或更大,则所有警告都会变成错误。

于 2013-03-22T15:44:51.047 回答
0

不可重现:

R> cor(rep(1,7), rep(1,7))
[1] NA
Warning message:
In cor(rep(1, 7), rep(1, 7)) : the standard deviation is zero
R> 

确保你有最新的版本,确保你的会话中没有随机的东西,确保你知道如何提出一个格式良好且可重复的问题等 pp

于 2013-03-22T14:09:53.720 回答