if(长度(scores.temp)==1&;scores.temp==0)中出错{:缺少需要TRUE/FALSE的值

if(长度(scores.temp)==1&;scores.temp==0)中出错{:缺少需要TRUE/FALSE的值,r,R,为了比较不同的插补方法,我试图截取一个数据集,但我得到了以下错误: if(长度(scores.temp)==1&&scores.temp==0)中出错{: 缺少需要TRUE/FALSE的值 这里是一个可复制的示例: library(mice) A <- matrix(c(rep(4,100),rep(5,100),rep(3,100),rep(7,100),rep(8,100),rep(9,100),rep(2,100)), nrow = 20, byrow = F) A_miss &l

为了比较不同的插补方法,我试图截取一个数据集,但我得到了以下错误:

if(长度(scores.temp)==1&&scores.temp==0)中出错{: 缺少需要TRUE/FALSE的值

这里是一个可复制的示例:

library(mice)
A <- matrix(c(rep(4,100),rep(5,100),rep(3,100),rep(7,100),rep(8,100),rep(9,100),rep(2,100)), nrow = 20, byrow = F)

A_miss <- ampute(A)

库(鼠标)

A这实际上是
截肢
标准化截肢数据分数的方式的问题。如果查看
截肢
函数的源代码,您会发现有一个嵌入式函数用于对每个缺失模式的分数求和。如果
截肢
中的参数
std
TRUE
,则嵌入式分数求和函数是否尝试居中和缩放(即,取标准差)分数。当分数矩阵中只有一行时会发生错误,因为如果您尝试在一行矩阵中获取每列的标准偏差,则只会得到NaN。幸运的是,有一个简单的解决方法,只需将
std
设置为
FALSE
。这不应该影响截肢数据的结构,因为缩放只是一种附加用于诱导缺失的权重的ne变换

库(鼠标)
#>加载所需包:lattice
#> 
#>附上包裹:“老鼠”
#>以下对象已从“package:base”屏蔽:
#> 
#>cbind,rbind

A我忘了说“ampute”是“MICES”包中的函数。即使使用正方形矩阵,我也会得到相同的错误。请尝试ampute(A,mech=“MCAR”)。我能够生成