r - 如何在 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
解决方案
在基数 R 中,我们可以table
用来计算每个 的出现country
,sort
它们选择使用的前 10 个国家,tail
并根据它们的存在/不存在分配 1/0 值。
df$COUNTRY_POPULAR <- +(df$COUNTRY %in% names(tail(sort(table(df$COUNTRY)), 10)))
前面+
将逻辑值TRUE
/FALSE
分别转换为 1/0。
推荐阅读
- scala - 找不到 Apache Spark 方法 sun.nio.ch.DirectBuffer.cleaner()Lsun/misc/Cleaner;
- node.js - 如何在meteorjs的客户端读取文件?
- php - Libreoffice shell_exec 在 PHP 脚本中失败
- vba - 如何将图片数据从一张图像复制到另一张图像?
- javascript - 回调不适用于全局变量
- qlikview - QlikView set analysis with date: nothing result
- mysql - mysql中以前的记录
- elasticsearch - 弹性搜索 query_shard_exception 未能执行查询
- partitioning - sql server 分区表相关索引
- python - 如何压缩两个熊猫数据框