r - 使用 mutate() 在每个变量中将 NA 隐藏到单独的级别
问题描述
我也有 12 个包含 NA 值的变量。我需要将 NA 转换为单独的级别。某些变量的水平值不同。以下是代码:
Replace_NAs <- function(colindex, na_level){
cname <- colnames(tr[colindex])
tr <- tr %>% mutate(cname = as.factor(replace(cname, is.na(cname), na_level)))
return(tr)
}
for (i in 1:12) {
if(i == 5){
na_level <- 3;
tr <- Replace_NAs(i,na_level);
}
else if(i == 11){
na_level <- 5;
tr <- Replace_NAs(i,na_level);
}
else if(i == 4|6|8){
na_level <- 1;
tr <- Replace_NAs(i,na_level);
}
else{
na_level <- 20;
tr <- Replace_NAs(i,na_level);
}
}
请帮我。谢谢。
解决方案
正如约翰在评论中提到的那样,您应该包含一个可重现的示例。没有它,我们只能猜测您到底想要什么。
也就是说,这是我对什么会帮助你的猜测:
df %>%
mutate_at(vars(5), ~ replace_na(., 3)) %>%
mutate_at(vars(11), ~ replace_na(., 5)) %>%
mutate_at(vars(4, 6, 8) ~ replace_na(., 1)) %>%
mutate_at(vars(-c(4, 5, 6, 8, 11)), ~ replace_na(., 20))
再次,请提供一个可重复的示例,其中包含数据和您想要的输出。对您的问题的更强有力的答案是探索将预期开关列表应用到您的数据帧,但这在这里有点过分了。
推荐阅读
- excel - 从 Power Query 中的列中删除标点符号
- javascript - 寻找带有输入编号的 React Multiselect 组件
- react-native - 尝试从文件中解析模块`fs`
- swift - CoreData:此类对于关键文件夹位置不符合关键值编码
- mysql - Sql 查询从另一个表中选择与表的单行上的值相关的多个项目
- javascript - React 无法设置 React Hooks 的状态
- linux - Linux 第一行/最后一行文件集从最旧到最新排序
- php - 在 ZF 上创建的网站的简单 REST API 实现
- jupyterhub - Kubernetes + Nginx 上的 Jupyterhub - 登录后没有生成
- python - 连接墙端点