用来自另一个数据帧的percentrank值替换数据帧值

时间:2013-08-22 07:46:13

标签: r

我有两个数据框。第一个数据框的值介于0和1之间.10行(人),15列(变量)。第二个数据框给出了百分比限制。第一行以5%的步长为0%至100%。我想要完成的是(示例)搜索具有相同名称df1的列中df2的第一列的第一个值,并将该值替换为column1的百分比值。搜索算法必须类似于df1value <= df2valuedf1value isnot <= df2value(行+ 1)然后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%

1 个答案:

答案 0 :(得分: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%