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