在 R 中向 data.table 添加条件概率

Adding conditional probabilities to data.table in R

我有泰坦尼克号数据集,我想在其中找到基于 3 个条件的生存概率。下面table给出概率。

library(PASWR2)
tab = with(TITANIC3, ftable(fare = fare > 200, pclass, sex, survived)) %>% prop.table(1) %>% round(3) * 100
tab

有没有一种简单的方法可以将 tab table 中的概率作为新列添加到 TITANIC3 数据集?

谢谢!

这可以通过使用包 data.table 来实现。 对象 TITANIC3 属于 class data.frame。首先,您需要将其转换为 class data.table。使用 data.table 时,您可以直接在一行中定义基于聚合和分组子句的新列。 只需 运行 下面的代码。

具有条件生存概率的新列是survival_prob。 我总是建议使用 data.table,因为它是在 R 中操作数据的最快方法。但是,如果您想使用 data.frame 进行分析,只需使用命令 setDF(titanic3) 将对象返回 class data.frame.

library(PASWR2)
library(magrittr)
library(data.table)

# convert dataset from data frame to data table 
titanic3 <- copy(TITANIC3)
setDT(titanic3)

# define new column survival_prob using by-option
titanic3[, survival_prob := round(100*mean(survived), 1), 
         by = .(fare > 200, pclass, sex)]