R 如何根据每个基因的距离只获得一个linc

R 如何根据每个基因的距离只获得一个linc,r,R,我有一张表,上面有对(Lnc/基因)和它们的距离 但我需要做过滤,为每个Lnc找到最接近的基因 范例 Genex Lnc1 1KB GeneY Lnc4 20KB 提前感谢下面是一个可能的dplyr解决方案。请尽量通过共享最少的数据集/代码来回答您的问题 # importing the necessary package library(dplyr) # reproducing your data df <- data_frame( Gene = c("Gene X", "Gene

我有一张表,上面有对(Lnc/基因)和它们的距离 但我需要做过滤,为每个Lnc找到最接近的基因

范例

Genex Lnc1 1KB GeneY Lnc4 20KB


提前感谢

下面是一个可能的
dplyr
解决方案。请尽量通过共享最少的数据集/代码来回答您的问题

# 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
#导入必要的包
图书馆(dplyr)
#复制数据
df%
分组依据(基因)%>%
过滤器(`Distance(KB)`==min(`Distance(KB)`))
##tibble:2 x 3
##群体:基因[2]
#基因Lnc`距离(KB)`
#                
#1基因X Lnc1
#2基因Y Lnc4 20

如果只有一对Lnc,基因,具有最接近的距离,那么您也可以使用下面的

   df%>%
   group_by(Gene)%>%
   arrange(`Distance (KB)`)%>%
   summarise(Lnc=first(Lnc), Dist=first(`Distance (KB)`))

图片和截图可以很好地添加到帖子中,但请确保没有它们的帖子仍然清晰有用。不要发布代码、数据或错误消息的图像。而是直接将实际的代码/数据/消息复制粘贴或键入到帖子中。