首页 > 解决方案 > 如何在 R 中概括很多分类变量?

问题描述

我在 R 中有以下 df:

ID      GENDER        COUNTRY
1         M             US
2         M             UK
3         F             JPN
4         F             NED

有超过 50 个不同的国家,我想将这些信息总结如下。如果此人来自前 10 个最受欢迎的国家(流行国家是记录最多的国家),则 COUNTRY_POPULAR 将为 1,否则为 0。Ex US 和 UK 恰好在此 df 和 JPN 和 NED 的前 10 名中不是:

ID      GENDER        COUNTRY         COUNTRY_POPULAR 
1         M             US                   1
2         M             UK                   1
3         F             JPN                  0
4         F             NED                  0

标签: rdataframedplyrfeature-engineering

解决方案


在基数 R 中,我们可以table用来计算每个 的出现countrysort它们选择使用的前 10 个国家,tail并根据它们的存在/不存在分配 1/0 值。

df$COUNTRY_POPULAR <- +(df$COUNTRY %in% names(tail(sort(table(df$COUNTRY)), 10)))

前面+将逻辑值TRUE/FALSE分别转换为 1/0。


推荐阅读