这里有一个非常简单的问题。我们假设我们在水柱中随机放置了一定量的颗粒。我们有关于每个粒子深度的信息(df),我们有水柱的温度分布(剖面)。
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)
在给定深度返回特定粒子(例如ID = 13)的环境温度最简单的方法是什么?这种情况下的输出应该是[1] 6.844444
,因为17米处的温度是6.844444,正如您在&#34; profile&#34;中看到的那样。返回需要是单个值,命令应尽可能短。它会在函数()中重复使用。
使用[方括号]左右必须有一个非常简单的解决方案......
感谢您的帮助......
罗伯特
答案 0 :(得分:0)
自己找到了......
profile[profile$depth1==df[df$id==13,"depth2"],"temp"]
非常感谢, 罗伯特
答案 1 :(得分:0)
您可以将其缩短到
profile[df[df$id==13, "depth2"], "temp"]
内部表达式的计算结果为depth1
的数值,而不是逻辑向量。
如果目标值始终位于已知列索引处,则甚至更短:
profile[df[df$id==13, 2], 2]