r - 如果布尔数据框在 R 中的位置为真,如何获取数字数据框值?
问题描述
我们有两个数据框,一个是布尔类型,另一个是数字。
我需要从 d_num 中检索其中一个值,其中 d_bool 为 TRUE,否则为 NA。
有没有针对这个问题的矢量化方法?
d_bool= data.frame(a = c(F,F,T,F,T),
b = c(F,F,F,F,T))
d_num = data.frame(a = c(1.0, 4.0, 2.0 ,4.1 ,6.8),
b = c(21.9 ,34.0 ,4.7 ,5.1 ,2.0))
所需输出
d= data.frame(a= c(NA,NA,2.0, NA,6.8),
b= c(NA,NA,NA,NA,2.0)
解决方案
您可以否定这些d_bool
值并将其用于子集d_num
和分配NA
。
d_num[!d_bool] <- NA
d_num
# a b
#1 NA NA
#2 NA NA
#3 2.0 NA
#4 NA NA
#5 6.8 2
推荐阅读
- javascript - 在 React 中调用 API 后设置状态
- webpacker - 将 PrismJs 添加到 rails 6 webpacker 站点
- python - Python:一个具有多个配置文件(2D)的图,由数据框中的多个变量分组
- python - 包含 utf-16 编码的 xml 文件有问题吗?
- github - 在 GitHub 页面上托管引发 404 错误
- html - 在添加容器后的引导 4 导航栏中,内容自动右对齐
- windows - 如何在 64 位 Windows 上使用 CMAKE for AWS SDK 构建 32 位 VS 项目
- spring - ActiveMq 消息转换器不适用于 JmsTemplate
- r - 过滤r中的最新日期
- c# - 将变量用作带有 MessageBoxButtons 的按钮类型