r - 将所有其他级别重命名为“其他”
问题描述
我有一个数据框,其中包含我在去年完成的所有调用。在“姓名”列下,有我的联系人列表中人员的姓名。在 R 中,此列包含 30 个因素,我只想有 3 个因素:Mom、Dad、BestFriend和Others。我正在使用这个片段:
library(plyr)
call$Name <- mapvalues(call$Name, from = 'Mikey Mouse', to = 'BFF')
call$Name <- mapvalues(call$Name, from = c('Rocky Balboa','Uma Thurman'), to = c('Dad','Mom'))
我如何将除这 3 个之外的所有其他级别重命名为Other?
解决方案
我们可以首先创建一个level
'Others'(假设它是a factor
),将levels
不是('nm1')%in%
的向量分配给'Other'levels
levels(call$Name) <- c(levels(call$Name), 'Other'))
levels(call$Name)[!levels(call$Name %in% nm1] <- 'Other'
或者另一个选项是recode
从中dplyr
也可以.default
选择将不在向量中的其他级别指定为给定值
library(dplyr)
recode(call$Name, `Mikey Mouse` = 'BFF', `Rocky Balboa` = 'Dad',
`Uma Thurman` = 'Mom', .default = 'Other')
数据
set.seed(24)
call <- data.frame(Name = sample(c('Mikey Mouse', 'Rocky Balboa',
'Uma Thurman', 'Richard Gere', 'Rick Perry'), 25, replace = TRUE))
nm1 <- c('Mickey Mouse', 'Rocky Balboa', 'Uma Thurman')
推荐阅读
- fortran - f2py 是否支持类型仅作为 intent(inout) 的函数?
- r - R:具有可变预测范围的 Arima() 每日预测序列(forecast())
- javascript - 与允许用户从输入生成函数相关的风险
- python - 无法在 Python 中使用 xattr 设置 MacOS Finder 评论元数据
- json - xml 数据解析数据正在使用 rss 的颤振应用程序中显示
- flutter - flutter-firestore:如何计算地图中所有数组中的所有元素
- node.js - 领域读取具有关系的数据
- azure - 使用 Azure AD 进行身份验证的应用程序的 JMeter 负载测试
- plugins - 这是在遵循 gstreamer 插件示例时发生的
- javascript - 无法在 Enablex 中播放画布流。这里的画布选择器是什么?