【发布时间】:2021-09-28 18:51:34
【问题描述】:
我正在尝试找到最佳方法来获取位于 Z 列范围内的 Y 列的值并返回相应的行。
例如,考虑 X 列中的 A,Y 中的值为 25,因此它介于 20 和 30 之间,因此 W 中的对应值为 2。
## example dataframe
df <- data.frame(X=c("A","A","A","A","B","B","B","C","C","C"),
Y=c(25,25,25,25,35,35,35,15,15,15),
Z=c(10,20,30,40,10,20,30,10,20,30),
w=c(1,2,3,4,1,2,3,1,2,3))
#desired dataframe
df2 <- data.frame(X=c("A","B","C"),
Y=c(25,35,15),
Z=c(20,30,10),
w=c(2,3,1))
问题需要解决。假设 D 的值 Y (5) 小于 min Z (10) 在这种情况下它会得到 0。如何实现?
df <- data.frame(X=c("A","A","A","A","B","B","B","C","C","C","D","D","D"),
Y=c(25,25,25,25,35,35,35,15,15,15,5,5,5),
Z=c(10,20,30,40,10,20,30,10,20,30,10,20,30),
w=c(1,2,3,4,1,2,3,1,2,3,1,2,3))
df2 <- data.frame(X=c("A","B","C","D"),
Y=c(25,35,15,5),
Z=c(20,30,10,0),
w=c(2,3,1,0))
【问题讨论】: