0

我有两个数据框。第一个数据框的值介于 0 和 1 之间。10 行(人),15 列(变量)。第二个数据框给了我百分比等级限制。第一行是 0% 到 100%,步长为 5%。我想要完成的是(示例)df1在具有相同名称的列中搜索第一列的第一个值,df2并将该值替换为 column1 的百分比值。搜索算法必须类似于 If df1value <= df2valueAND df1value isnot <= df2value(row+1) then df1value = df2percentrank。我正在寻找几个小时的帮助,但找不到任何解决方案的提示,所以很遗憾我无法提供任何代码。

DF1:
V1|V2|V3
12|40|80

DF2:
PR|V1|V2|V3
0%|0|0|0|
50%|13|60|30
100%|60|100|70|

Output:
V1|V2|V3
0%|0%|100%
4

1 回答 1

0

这很可能不是最好的方法,但这是我第一次看到这个问题时想到的:

setNames(data.frame(lapply(1:3, function(x) {
  cut(df1[[x]], c(df2[[x+1]], Inf), labels=df2[[1]])
})), names(df1))
#   V1 V2   V3
# 1 0% 0% 100%
于 2013-08-22T10:49:37.060 回答