r - 检查A列中的数值是否存在于r中B列和C列中2个数值之间的范围内
问题描述
我想检查 A 列中的数值是否存在于 r 中 B 列和 C 列中 2 个数值之间的范围内。
这是起始数据集:
# dataset with values
numerical_values_dataset <-
data.frame(
A = c("0.798963315", "0.160710819", "0.247170125", "-0.910092611", "0.42959469", "0.710921651", "0.160710819"),
B = c("0.321418973", "0.710921651", "0.910092611", "0.42959469", "0.42959469", "0.42959469", "0.160710819"),
C = c("0.812661261", "0.146377668", "0.42959469", "0.710921651", "0.710921651", "0.710921651", "0.160710819")
)
> numerical_values_dataset
A B C
1 0.798963315 0.321418973 0.812661261
2 0.160710819 0.710921651 0.146377668
3 0.247170125 0.910092611 0.42959469
4 -0.910092611 0.42959469 0.710921651
5 0.42959469 0.42959469 0.710921651
6 0.710921651 0.42959469 0.710921651
7 0.160710819 0.160710819 0.160710819
我至少想得到至少对应的结果Ranges_status_yes_no
,并且得到“Ranges_status_specific”会很好。
# result Ranges_status_yes_no
Ranges_status_yes_no <- data.frame(Ranges_status_yes_no = c("yes", "yes", "no", "no", "yes", "yes", "yes"))
# result Ranges_status_specific
numerical_values_dataset$Ranges_status_specific <- c("A is between B and C", "A is between B and C", "A is less than B", "A is less than B", "A is equal to B", "A is equal to C", "A is equal to B and C")
> numerical_values_dataset
A B C Ranges_status_yes_no Ranges_status_specific
1 0.798963315 0.321418973 0.812661261 yes A is between B and C
2 0.160710819 0.710921651 0.146377668 yes A is between B and C
3 0.247170125 0.910092611 0.42959469 no A is less than B
4 -0.910092611 0.42959469 0.710921651 no A is less than B
5 0.42959469 0.42959469 0.710921651 yes A is equal to B
6 0.710921651 0.42959469 0.710921651 yes A is equal to C
7 0.160710819 0.160710819 0.160710819 yes A is equal to B and C
我想可以使用长ifelse()
语句生成这些结果。但是有没有办法以其他方式做到这一点?
非常感谢任何帮助,甚至是部分答案。
解决方案
我们可以用
numerical_values_dataset %>%
mutate(Ranges_status_specific = case_when(Ranges_status_yes_no == 'no' ~ 'A is less than B',
A <= B & C >= A ~ 'A is between B and C',
A == 'B' & A != 'C' ~ 'A is equal to B',
A == 'C' & A != 'B' ~ 'A is equal to 'B',
TRUE ~ 'A is equal to B and C'))
推荐阅读
- flutter - 如何防止图表中的 setState() 上的指标点消失
- html - 所需的模板驱动表单允许空字符串 - Angular 7/8
- xamarin.forms - Xamarin 表单自定义内容视图(复合控件)隐式样式错误
- selenium-webdriver - 将 translate() 函数用于 xpath 不区分大小写时的混淆
- python - 我怎样才能创建泛型类?
- amazon-web-services - EKS 上的 NFS 连接超时
- java - 将空/空白页添加到 PdfDocument java
- alfresco - 在 Alfresco Community 5.2 上使用自定义 webscript 上传文件大小限制
- python-3.x - 将列表(可迭代)附加到空列表返回空列表
- postgresql - 在集群中升级到 PostgreSQL 12