我有一张桌子,桌子上有两对(Lnc /基因)及其距离 但我需要过滤以获取每个Lnc的最接近基因
示例
Genex Lnc1 1KB Geney Lnc4 20KB
提前谢谢
答案 0 :(得分:1)
下面是一种可能的dplyr
解决方案。请尝试通过共享最少的数据集/代码来提出问题reproducible。
# importing the necessary package
library(dplyr)
# reproducing your data
df <- data_frame(
Gene = c("Gene X", "Gene X", "Gene X", "Gene Y"),
Lnc = c("Lnc1", "Lnc2", "Lnc3", "Lnc4"),
`Distance (KB)` = c(1, 300, 200, 20)
)
# grouping by Gene and choosing the minimum Gene-Lnc distance
df %>%
group_by(Gene) %>%
filter(`Distance (KB)` == min(`Distance (KB)`))
# # A tibble: 2 x 3
# # Groups: Gene [2]
# Gene Lnc `Distance (KB)`
# <chr> <chr> <dbl>
# 1 Gene X Lnc1 1
# 2 Gene Y Lnc4 20
答案 1 :(得分:0)
如果只有一对Lnc,Gene具有最接近的距离,那么您也可以在下面使用
df%>%
group_by(Gene)%>%
arrange(`Distance (KB)`)%>%
summarise(Lnc=first(Lnc), Dist=first(`Distance (KB)`))