r - 如何根据部分条件设置 NA?
问题描述
这是我的示例数据集
df = structure(list(v1 = c(1, 2, 3, 4), v2 = c("x a", "x a", "3",
"x a"), v3 = c("x b", "x b", "x a", "x b"), v4 = c("x c", "x c",
"x b", "x c"), v5 = c("1", "2", "x c", "4"), v6 = c(1, 2, 3,
4)), row.names = c(NA, -4L), class = c("tbl_df", "tbl", "data.frame"
))
我需要将所有不包含该字符的单元格设置"x"
为NA
期望的输出
structure(list(v1 = c(NA, NA, NA, NA), v2 = c("x a", "x a", "NA",
"x a"), v3 = c("x b", "x b", "x a", "x b"), v4 = c("x c", "x c",
"x b", "x c"), v5 = c("NA", "NA", "x c", "NA"), v6 = c(NA, NA, NA,
NA)), row.names = c(NA, -4L), class = c("tbl_df", "tbl", "data.frame"
))
解决方案
我们能做的
df[] <- replace(as.matrix(df), !grepl('x', as.matrix(df)), NA)
推荐阅读
- r - 我可以将历史市值从网站导入 R 吗?
- python - 在烧瓶项目中导入模块的位置
- node.js - 静态服务 React 文件来表达
- android - 有没有关于如何在 android 中使用 GoogleIdTokenVerifier 的示例?
- powershell - pg_ctl.exe 无法以自定义 postgresql.conf 启动
- mysql - (MySQL)以某种方式命名数据库默认值并且根本无法使用它,因为 MySQL 工作台认为我使用默认数据tyoe
- javascript - 为什么元素 getBoundingClientRect() 值条件无法正常工作?
- python - Python ValueError:没有足够的值来解包(预期 2,得到 1)
- python - 在字典中查找数字并在 python 中打印
- objective-c - 以编程方式获取在 Safari 或 Google chrome 中打开的选项卡的标题或数量