来自df中multile列和R中print列n的grep向量

来自df中multile列和R中print列n的grep向量,r,R,我需要匹配从df3$end到df2$V2和df$V3的模式向量。然后,最终的输出文件应该采用df1,并从df2中附加匹配的列V4和V5,如预期输出所示 df1 <- read.table(text=' chr init 12 25289552 3 180418785 3 180434779 6 69909 5 284892182'

我需要匹配从df3$end到df2$V2和df$V3的模式向量。然后,最终的输出文件应该采用df1,并从df2中附加匹配的列V4和V5,如预期输出所示

    df1 <- read.table(text='  chr    init
12  25289552
                  3 180418785
                  3 180434779
                  6 69909
                  5 284892182', header=TRUE)


df2 <- read.table(text='    V1    V2  V3  V4  V5  V6
                  1     69094   321233  medium  2.1   321234
                  1     69094 21231310  medium  3.4 21231313
                  12 25289552 180434559  high  1.1 180434779
                  1     69095 69909 medium  2.9 69909
                  3 180418785 284892182 medium  1.8 284892182
                  3 180434779 69909 low 2.8 69909', header=TRUE)

df3 <- read.table(text='  chr    init end
 12  25289552 180434779
                  3 180418785 321233
                  3 180434779 180434779
                  6 69909     69909
                  5 284892182 21231313
                  3 180418785 284892182 ', header=TRUE)
#expected output

df1_chr    df1_init df3_end  df2_V4 df2_V5 df2_V4_2 df2_V5_2
12  25289552 180434779 high  1.1 NA NA NA
3 180418785 321233  medium  2.1 284892182 medium     1.8 
3 180434779 180434779  high  1.1 NA NA NA
6 69909 69909 medium/low  2.9/2.8 NA NA NA
5 284892182 21231313  medium  3.4 NA NA NA
df1你能使用dplyr吗

库(dplyr)
df1%>%
内部连接(df3,by=c(“chr”,“init”))%>%
内部联接(df2,by=c(“end”=“V3”))%>%
选择(-V1,-V2)%%>%group_by(chr,init,end)%%>%
总结(df2_V4=粘贴(V4,collapse=“,”),df2_V5=粘贴(V5,collapse=“,”)

是否可以通过“end”=2个不同的列进行内部连接,如df2中的V3或V6(by=c(“end”=V3 V6”),不起作用)。此外,在少数情况下,df1_init具有不同的df3_端点,因此必须将它们作为单独的列添加,如示例所示。感谢您的帮助。谢谢
matches <- filter(df2, grepl(paste(df3$end, collapse="|"), df2$V3,df2$V4))