克朗巴赫';s alpha--rbindlist错误

克朗巴赫';s alpha--rbindlist错误,r,data.table,R,Data.table,我是新来R的。我正在尝试为一个数据集计算克朗巴赫的阿尔法(来自psych软件包)。数据集如下所示: R> belong_data belong.q1 belong.q2 belong.q3 belong.q4 belong.q5 1: NA NA NA NA NA 2: 5 5 5 5 5 3: N

我是新来R的。我正在尝试为一个数据集计算克朗巴赫的阿尔法(来自psych软件包)。数据集如下所示:

R> belong_data
      belong.q1 belong.q2 belong.q3 belong.q4 belong.q5
   1:        NA        NA        NA        NA        NA
   2:         5         5         5         5         5
   3:        NA        NA        NA        NA        NA
   4:         5         5         4         5         5
   5:         4         5         4         3         3
我得到以下错误:

R> alpha(belong_data)
Error in rbindlist(l, use.names, fill) : 
  Item 2 of list input is not a data.frame, data.table or list

我不知道rbindlist调用来自何处,也不知道如何输入正确的数据结构。数据集本身(“归属数据”)是一个data.frame。不知道问题出在哪里

更新:发生此问题的原因是
psych::alpha
创建一个
矩阵
,并尝试将该矩阵绑定到输入数据表。但是,
rbind
(内部调用
rbindlist
)用于data.table,迄今为止只处理了
list/data.frame/data.table
输入

rbind
for data.tables现在先将非data.table列表元素强制为data.tables,然后在内部调用
rbindlist
。修复了该问题,应在上的v1.9.8中提供。发件人:

  • rbind
    for data.tables现在在调用
    rbindlist
    之前首先强制将非列表输入到data.tables,以便data.tables和矩阵的绑定列表按预期与base的rbind一致。感谢@ems对SO的报道

  • 这看起来像是一个可复制的
    data.table
    bug。我已经存档了。谢谢你发帖

    require(psych)
    require(data.table)
    > DT = data.table(a=1:5,b=6:10)
    > alpha(DT)
    Error in rbindlist(l, use.names, fill, idcol) : 
      Item 2 of list input is not a data.frame, data.table or list
    > setDF(DT)
    > alpha(DT)  # works
    
    > sessionInfo()
    R version 3.2.2 (2015-08-14)
    Platform: x86_64-pc-linux-gnu (64-bit)
    Running under: Ubuntu 15.10
    
    locale:
     [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C               LC_TIME=en_US.UTF-8        LC_COLLATE=en_US.UTF-8     LC_MONETARY=en_US.UTF-8    LC_MESSAGES=en_US.UTF-8    LC_PAPER=en_US.UTF-8      
     [8] LC_NAME=C                  LC_ADDRESS=C               LC_TELEPHONE=C             LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C       
    
    attached base packages:
    [1] stats     graphics  grDevices utils     datasets  methods   base     
    
    other attached packages:
    [1] data.table_1.9.7 psych_1.5.8     
    
    loaded via a namespace (and not attached):
    [1] parallel_3.2.2 mnormt_1.5-4  
    > 
    

    是吗?看起来像,但可能不是。
    dput(head(property\u data))
    给了你什么?@thelatemail噢,你的意思是可能property\u数据不是一个数据帧?Hm.class(归属数据)给出“[1]”数据表“.data.frame”,而typeof(归属数据)给出“[1]”列表“。。。R> dput(head(attery_data))结构(list(list)(attery.q1=c(NA,5L,NA,5L,4L,5L),attery.q2=c(NA,5L,NA,5L,5L,5L,5L),attery.q4=c(NA,5L,NA,5L,3L,5L),attery.q5=c(NA,5L,NA,5L,3L,4L),attery.name=c(“attery.q1”,“attery.q2”,“attery.q3=c”,“attery”,“attery.q4”,“attery”数据类,“data.frame”),row.names=c(NA,-6L),.internal.selfref=)