我喜欢R中的data.table包,我认为它可以帮助我执行复杂的交叉制表任务,但我还没有弄清如何使用该包来执行类似于table
的任务。
以下是一些复制调查数据:
opinion <- c("gov", "market", "gov", "gov")
ID <- c("resp1", "resp2", "resp3", "resp4")
party <- c("GOP", "GOP", "democrat", "GOP")
df <- data.frame(ID, opinion, party)
在表格中,按政党统计意见数量就像是 table(df$opinion, df$party)
这样简单。
我已经在data.table中完成了类似的操作,但结果很笨拙,而且会添加一个独立的列。
dt <- data.table(df)
dt[, .N, by="party"]
data.table中有许多分组操作可用于快速和复杂的调查数据交叉表,但我没有找到任何关于如何使用它的教程。感谢任何帮助。
data.frame
。dcast
是来自于data.table
软件包而非reshape2
,针对速度进行了优化。 - akrundt[,table(x,y)]
和dt[,.N,by=.(x,y)]
之间的竞争性已经不再存在于更新后的版本中。 - MichaelChiricodt[,table(x,y)]
是另一个简单的选项(在我的机器上比reshape2::dcast
更快,但比data.table::dcast
慢)。 - MichaelChirico