r - 如果列表中存在值,则更改列的值
问题描述
我有一个结构如下的 R 数据框:
indx <- as.factor(c('A01','A02','A03','B01','B02','B03'))
data <- runif(6,0,10)
valid <- rep(TRUE, 6)
df <- data.frame(indx, data, valid)
indx data valid
1 A01 6.534581 TRUE
2 A02 4.996695 TRUE
3 A03 3.328804 TRUE
4 B01 2.342048 TRUE
5 B02 9.928362 TRUE
6 B03 5.484037 TRUE
indx
当无效时,我还有一个值列表。
invalid_list <- as.factor(c('A02','B03'))
如果valid
存在于_ _FALSE
indx
invalid_list
结果应如下所示:
indx data valid
1 A01 6.534581 TRUE
2 A02 4.996695 FALSE
3 A03 3.328804 TRUE
4 B01 2.342048 TRUE
5 B02 9.928362 TRUE
6 B03 5.484037 FALSE
解决方案
基于以下的解决方案dplyr
:
library(dplyr)
df %>%
mutate(valid = ifelse(indx %in% invalid_list, FALSE, valid))
推荐阅读
- sql - 在sql中的时间范围内以1小时为间隔选择最大数据
- python - 将csv转换为数组字典列表
- ios - 如何订阅 PKPassLibraryNotificationName
- maven - 在 spring-boot 中为每个配置文件配置不同的资源
- ios - 无法在 iOS 13 上更改 Main.storyboard 的名称 [Xcode 11 GM 种子 2]
- java - 如何通过ip地址、协议和pro知道机器的内存使用情况
- html - CSS - 内部 div 和包装 div 之间的高度不匹配
- git - 为什么命令“git help”不能与其他命令一起使用?
- xamarin - 如何从 VS Code 或终端启动 Xamarin.iOS 应用程序?
- laravel - 新安装的 laravel 上没有 vue 组件