У меня есть два кадра данных и я хочу использовать значение в одном (DF1$pos
) для поиска по двум столбцам в DF2 (DF2start, DF2end), и если он попадает в эти числа, верните DF2$name
значение поиска кадра данных в диапазоне и возвращает другой столбец
DF1
ID pos name
chr 12
chr 542
chr 674
DF2
ID start end annot
chr 1 200 a1
chr 201 432 a2
chr 540 1002 a3
chr 2000 2004 a4
так что в этом примере я хотел бы DF1 стать
ID pos name
chr 12 a1
chr 542 a3
chr 674 a3
Я попытался с помощью слияния и пересекаются, но не знаете, как использовать if
заявление с логическим выражением в них.
Кадры данных должны быть закодированы следующим образом,
DF1 <- data.frame(ID=c("chr","chr","chr"),
pos=c(12,542,672),
name=c(NA,NA,NA))
DF2 <- data.frame(ID=c("chr","chr","chr","chr"),
start=c(1,201,540,200),
end=c(200,432,1002,2004),
annot=c("a1","a2","a3","a4"))
Я не проголосовал за этот вопрос, но я думаю, что кто бы это ни делал, это потому, что вы не поместили свой фрейм данных es в формате R – user1945827