r - 根据列的名称和另一个列值将 NA 分配给列
问题描述
我想根据名称和另一个列值将 NA 分配给列。就像下面的例子:
给定数据框 iris,我想将 NA 分配给名称以“Sepal”和列“Species”==“setosa”开头的所有列
最好使用 dplyr mutate_at/mutate_if 的解决方案,也欢迎任何其他解决方案。
我试过
iris %>%
mutate_if(str_detect(names(.), pattern = "Sepal") & (.$Species == "setosa") , function(x){x <- NA})
Error in tbl_if_vars(.tbl, .p, .env, ..., .include_group_vars = .include_group_vars) :
length(.p) == length(tibble_vars) is not TRUE
解决方案
在dplyr
中,选择包含“Sepal”的变量并将 NA 分配给 Species 为“setosa”的那些行:
iris %>%
mutate_at(vars(contains("Sepal")), funs(ifelse(Species == "setosa", NA, .)))
推荐阅读
- sql - HIVE 获取选择任何课程的男性和女性人数
- java - 如何使用 ExoPlayer 从服务器播放
- xamarin.android - 无法在 xamarin 中调试您的应用
- c# - 工具集菜单选项的 EA API
- python - Python-Django 多数据库 - 类型错误:allow_migrate() 缺少 1 个必需的位置参数:“app_label”错误
- apache-spark - 从 S3 运行 Spark 作业会产生随机输入大小值
- java - 如何制作水平抽屉?
- sap-basis - SAP 客户端 000、001、066 是否存在于所有环境中?
- java - JavaFX:如何将 TilePane 居中,但将 TilePane 子项从左到右放置?
- ios - 当我想存档反应原生项目时,Xcode 存档错误得到错误?