gpt4 book ai didi

R vlookup基于最接近的数字变量

转载 作者:行者123 更新时间:2023-12-05 09:05:37 34 4
gpt4 key购买 nike

我想在 R 中做一些类似于 vlookup 的事情,使用数字变量作为基础。

示例查找表:

> Value <- c(1,1.5,2,2.5,3,3.5,4,4.5,5)
> Code <- c("A","B","C","D","E","F","G","H","I")
> Lookup_Table <- data.frame(Value, Code)
> Lookup_Table
Value Code
1 1.0 A
2 1.5 B
3 2.0 C
4 2.5 D
5 3.0 E
6 3.5 F
7 4.0 G
8 4.5 H
9 5.0 I

示例数据表:

> DataSample <- c(1.2,1,2.3,2.7,3.1,3,4.6,4.5,3.8)
> DataSample <- data.frame(DataSample)
> DataSample
DataSample
1 1.2
2 1.0
3 2.3
4 2.7
5 3.1
6 3.0
7 4.6
8 4.5
9 3.8

因此,我想从这个 DataSample 值中根据查找表值匹配相应的 Code。例如,如果我的值为 1.2,我想将其四舍五入为查找表中最接近的值,即 1.5。所以我希望得到1.5的相应代码。

我想要的输出是:

> DataSample
DataSample Code
1 1.2 B
2 1.0 A
3 2.3 D
4 2.7 E
5 3.1 F
6 3.0 E
7 4.6 I
8 4.5 H
9 3.8 G

最佳答案

基本的 R 方法可以像这样使用 findInterval:

DataSample$Code <- with(Lookup_Table, 
Code[findInterval(DataSample$DataSample, Value, left.open = T) + 1])

输出

  DataSample Code
1 1.2 B
2 1.0 A
3 2.3 D
4 2.7 E
5 3.1 F
6 3.0 E
7 4.6 I
8 4.5 H
9 3.8 G

关于R vlookup基于最接近的数字变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66959377/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com