【问题标题】:model.matrix from lists in rmodel.matrix 来自 r 中的列表
【发布时间】:2015-08-06 06:41:46
【问题描述】:

我正在尝试将因子列表转换为矩阵,例如:

我的列表:

    [[1]]
    [1] "RA"   "FZFG" "BR"  
    [[2]]
    [1] "RA"
    [[3]]
    [1] ""
    [[4]]
    [1] ""

RA  FZFG  BR
1    1    1
1    0    0
0    0    0
0    0    0

我尝试执行以下操作:

allFactors<-c("RA","FZFG","BR")
mat<-model.matrix(~allFactors,  data =myLists)

但有错误:

data.frame(c("RA", "FZFG", "BR"), "RA", "", "", "", "", c("RA", : 参数暗示不同的行数:3, 1, 2, 4, 5, 7、6、8、9

对此的任何帮助表示赞赏。

【问题讨论】:

    标签: r model.matrix


    【解决方案1】:

    一个选项是

    library(qdapTools)
    mtabulate(myLists)[-1]
    

    或使用base R

     table(stack(setNames(myLists, seq_along(myLists)))[2:1])[,-1]
    

    【讨论】:

    • 更好的基础 R 解决方案,我必须了解 mtabulate :) +1 !
    【解决方案2】:

    基础R 选项:

    level = unique(unlist(lst))
    do.call(rbind, lapply(lst, function(u) table(factor(u, levels=level))))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-03-01
      • 1970-01-01
      • 2013-06-21
      • 2012-12-08
      • 2016-08-03
      • 1970-01-01
      • 2018-07-18
      • 2013-02-11
      相关资源
      最近更新 更多