2013-08-22 4 views
0

У меня есть два кадра данных. Первый фрейм данных имеет значения от 0 до 1. 10 строк (Person), 15 столбцов (переменные). Второй кадр данных дает мне Пределы Ранга Процентов. Первая строка составляет от 0% до 100% с шагом 5%. Я хотел бы выполнить (например) поиск первого значения первого столбца df1 в столбце с тем же именем df2 и заменить значение на процентное значение столбца1. Алгоритм поиска должен быть как If df1value <= df2value И df1value isnot <= df2value (ряд + 1), то df1value = df2percentrank. Я ищу помощь в течение нескольких часов и не мог найти никакого намека на решение, поэтому, к сожалению, нет кода, который я могу предоставить.заменить значения dataframe значениями процента из другого кадра данных

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% 
+2

вы получите гораздо лучше помочь, если вы предоставляете минимальный воспроизводимый пример ваших входных данных и ожидаемого результата. – A5C1D2H2I1M1N2O1R2T1

+0

@ Ананда Махто - это правильно. Поставляйте свои фреймы данных и то, что вы ожидаете получить в качестве результата. Вы можете использовать команду dput в R, чтобы создать базовый R-код для создания ваших кадров данных. –

+0

Быстрый взгляд на ваше описание показывает, что, возможно, вы можете посмотреть 'cut' +' merge' или 'match' из базы R или пакета IRanges. – A5C1D2H2I1M1N2O1R2T1

ответ

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%