【发布时间】:2017-01-25 22:23:18
【问题描述】:
我有以下数据框:
df1 <- data.frame(ProjectID=c(10,11,12,13),
Value1=c(101.25,102.85,102.95,103.15),
Value2=c(103.58,104.27,104.68,106.01))
df2 <- data.frame(ProjectID=c(10,10,11,11,11,12,13,13),
Value3=c(98.32,102.58,99.66,103.47,105.63,105.18,102.02,104.98))
我想创建以下列df1$Value4,如果满足以下条件,则从df2$Value3拉取:
-
ProjectIDs必须匹配df1和df2 -
df2$Value3必须介于df1$Value1和df1$Value2之间 - 如果以上2个条件都不满足,输入“”
如果可能的话,我对使用循环和 if 语句来完成这一点很感兴趣。非常感谢任何帮助。
输出应如下所示:
df1 <- data.frame(ProjectID=c(10,11,12,13),
Value1=c(101.25,102.85,102.95,103.15),
Value2=c(103.58,104.27,104.68,106.01),
Value4=c(102.58,103.47,"",104.98))
【问题讨论】:
-
看看
match()和which(),在这两者之间你应该可以尝试一些东西然后回来调整。 -
结果中的
df1$Value4应该是一个数值向量吗?
标签: r loops if-statement for-loop