r - R; 如何找到“最接近”和“较小”的向量//并在同一行上查看另一个向量?
问题描述
我正在尝试找到最接近 0.5 但不大于该值的向量。我想在同一行打印另一个向量。
例如,我有这样的表名为“exp”
num possibility
1 0.16
2 0.43
5 0.64
4 0.12
3 0.76
.
.
.
我试图找到,“哪种可能性最接近并且小于 0.5?”。答案是第二行,其中包含 'num==2' 'possibility==0.43' 但是如何通过编码找到它?
我正在尝试计算“num”的“+-2”范围,其可能性最接近且小于“0.5”。num肯定是“5”,范围是“3~7”。
但是如何使用链接代码立即执行此操作?
如果我有太多的 exp1、exp2、exp3、exp4... 来做同样的工作怎么办?我怎样才能自动做到这一点?
我试过了。
exp[which.min(exp$possibility-0.5 <0) -1 , 1]
x < exp[which.min(exp$possibility-0.5 <0) -1 , 1]+2
& x> exp[which.min(exp$possibility-0.5 <0) -1 , 1]-2
这是我最好的。但我不知道为什么在“which.min”函数中添加“<0”会有所不同,就像“ifelse”一样。以及如何在“which.min”函数之后不使用“-1”来找到“最近的较小的”。
其实我更想知道什么是更简单,更有用的工具。
请帮忙..
解决方案
你可以尝试这样的事情。你基本上可以设置 3 来获得变化。你也可以把它放在一个函数中,并使用 lapply 来遍历所有 cols。
f=data.frame(a=seq(1:10), b=runif(10))
c=0.5
z=f$b-c
z=ifelse(z>0, 99, z) # add if you dont want values above 0.5
z=abs(z)
z1=order(z)[1:3]
f$b[z1]
推荐阅读
- spring-batch - Spring Batch:设置自定义 BatchConfigurer 后,写入器的 JPA 存储库不起作用
- r - 在 MatchIt 包中使用 Mahalonobis 距离和卡尺
- c - 有选择地忽略换行符?
- async-await - Blazor、Httpclient、同步和异步 WebApi 调用
- android - 在颤振中找不到android的路径错误
- sql - 如何使用 Bigquery 和 Firebase 数据查找用户在一个会话中执行“NowPlayingActivity”所需的时间?
- c++ - 获取递归迭代目录相对于指定入口路径的路径
- api - 通过 URL 的邮递员通行证不起作用
- javascript - 如何在js中将div放在前面,调整大小并将其居中到屏幕中间?
- c# - 我可以在c#中逐列读取excel文件吗?