代码之家  ›  专栏  ›  技术社区  ›  NelsonGon phoxis

如何在data.table中获取prop.table?

  •  0
  • NelsonGon phoxis  · 技术社区  · 5 年前

    我一直在研究一个被错误地标记为 data.table . 在这里: prop.table() error in r 我正在找一张比例表,但到目前为止我还没找到。以下是示例数据和代码:

    library(data.table)
    data(Arthritis,package="vcd")
    #mytable<-with(Arthritis,table(Improved))
    #mytable
    mydata2<-copy(Arthritis)
    setDT(mydata2)
    head(mydata2)
    mydata2[,.(.N),by=.(Improved)]
    mydata2[,lapply(.N,sum),by=.(Improved)]
    

    这就产生了:

       Improved V1
    1:     Some 14
    2:     None 42
    3:   Marked 28
    

    我认为这样简单的链接会有所帮助,但它会返回有趣的输出:

    mydata2[,lapply(.N,sum),by=.(Improved)][,prop:=V1/sum(V1)]
    

    什么是单纯的 数据表 如何获得比例表?

    1 回复  |  直到 5 年前
        1
  •  3
  •   IRTFM    5 年前

    “我们不需要Steenking计数。”经典电影参考

    我认为你必须有某种概念上的障碍来理解第二个论点立场的“真正力量” [.data.table 功能。您只需放置一个要计算的表达式。因为prop.table需要一个表对象,所以必须首先用 table 功能:

    mydata2[ , prop.table(table(Improved)) ]
    Improved
         None      Some    Marked 
    0.5000000 0.1666667 0.3333333 
    

    我注意到返回值是 data.table对象。