R中的某种简单查找函数

Some sort of simple lookup function in R

这里我们有一个超级简单的问题。假设我们在水柱中随机放置了一定数量的粒子。我们有关于每个粒子的深度 (df) 的信息,我们有水柱的温度曲线 (profile)。

temp <- seq(4,20,by=(20-4)/90)
depth1 <- c(1:91)
profile <- data.frame(depth1, temp)

id <- c(1:182)
depth2 <- c(rep(5:45,3),50:91,1:17)
df <- data.frame(id, depth2)

return 给定深度处特定粒子(例如 ID=13)的环境温度的最简单方法是什么?本例中的输出应为 [1] 6.844444,因为 17 米处的温度为 6.844444,如您在 "profile" 中所见。 return 需要是单个值,命令应尽可能短。然后在function()中重复使用。

一定有一个非常简单的解决方案,使用[方括号]左右...

感谢您的帮助...

罗伯特

自己搞定了...

profile[profile$depth1==df[df$id==13,"depth2"],"temp"]

还是谢谢你 罗伯特

您可以进一步缩短为

profile[df[df$id==13, "depth2"], "temp"]

内部表达式的计算结果为 depth1 的数值,而不是逻辑向量。

如果目标值始终位于已知的列索引处,甚至更短:

profile[df[df$id==13, 2], 2]