匹配两个列表并在第二个列表中给出输出字

时间:2017-06-16 18:35:51

标签: arrays r

'

require(readxl)
head(gene) <- read_excel("Desktop/test2/practiceversion.xlsx")
head(listofnames) <- read.delim("Documents/t2g_clean.txt")
listofnames_1 <- listofnames[,1]
listofnames_2 <- listofnames[,2]
realgenename <- listofnames[,3]
gene_name <- gene[,2]
isoform <-gene[,3]

&#39;

 require(dplyr)
listofnames %>% 
  filter( listofnames_1 %in% gene_name | listofnames_2 %in% gene_name ) %>%
  select(listofnames) %>%
  write.tsv(., "Documents/list.txt", sep="\t", quote = FALSE)

我正在尝试将一个列表中的单词与另一个列表中的单词进行比较,并输出该单词所在的第二个列表中的行。我知道在python中我可以使用单词&#34; word&#34;和&#34; LST&#34;但我无法进入。我怎么解决这个问题?

1 个答案:

答案 0 :(得分:0)

我根据你的评论制作了一个虚假的data.frame:

gene_name <- letters[seq(1,20,3)]
listofnames <- data.frame( id1 = rep(letters[1:10],2),
                           id2 = rep(letters[11:20],2),
                           value = 1:20 )

我将使用dplyr包,您可以使用install.packages("dplyr")安装,然后使用library(dplyr)加载。这是代码块:

library(dplyr)

listofnames %>% 
filter( id1 %in% gene_name | id2 %in% gene_name ) %>%
select(value) %>%
write.tsv(., "Documents/list.txt", sep="\t", quote = FALSE)

这将从listofnamesfilter行开始,这些行符合条件id1 %in% gene_name | id2 %in% gene_nameselect只有value列,write.tsv结果