Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何根据R中其他文件的名称获取文件名?_R_File_Tidyverse_Filenames_Magrittr - Fatal编程技术网

如何根据R中其他文件的名称获取文件名?

如何根据R中其他文件的名称获取文件名?,r,file,tidyverse,filenames,magrittr,R,File,Tidyverse,Filenames,Magrittr,我有一个包含如下文件的文件目录数据: data |___ UPA.csv |___ M_B.csv |___ M_C.csv |___ M_D.csv |___ M_E.csv Genes AC018653.3 AC022509.1 AC022509.2 AC055720.2 AC082651.1 AC084346.2 AC084824.4 AC092171.4 AC092803.2 AC084346.2 AD097808.3 AC084824.4 ADFR3564.8

我有一个包含如下文件的文件目录数据:

data
  |___ UPA.csv
  |___ M_B.csv
  |___ M_C.csv
  |___ M_D.csv
  |___ M_E.csv
Genes
AC018653.3
AC022509.1
AC022509.2
AC055720.2
AC082651.1
AC084346.2
AC084824.4
AC092171.4
AC092803.2
AC084346.2
AD097808.3
AC084824.4
ADFR3564.8
A1982983.4
AC098789.3
AC022509.2
AC783546.3
AC055720.2
AC018653.3
AS989473.9
AC022509.1
AE378467.1
M_B.csv: AC084346.2, AC084824.4
M_C.csv: AC022509.2, AC055720.2
M_D.csv: AC018653.3, AC022509.1
setwd("/data/")
library(tidyverse)
library(magrittr)

genes <- Sys.glob(file.path("M_*.csv"))
genes.read <- lapply(genes,function(x) read.delim(x, header = FALSE))
genes.read <- lapply(genes.read, function(x) set_colnames(x, "Genes"))
ref2 <- list.files(pattern = "UP")
ref2
ref.read <- read.delim(ref2[[1]])
intersect <- lapply(seq_along(genes.read), function(x) 
  intersect(genes.read[[x]], ref.read))
for(i in 1:length(genes.read)) { 
  cat(genes[[i]],":",intersect[[i]]$Genes, "\n")
}
UPA.csv
如下所示:

data
  |___ UPA.csv
  |___ M_B.csv
  |___ M_C.csv
  |___ M_D.csv
  |___ M_E.csv
Genes
AC018653.3
AC022509.1
AC022509.2
AC055720.2
AC082651.1
AC084346.2
AC084824.4
AC092171.4
AC092803.2
AC084346.2
AD097808.3
AC084824.4
ADFR3564.8
A1982983.4
AC098789.3
AC022509.2
AC783546.3
AC055720.2
AC018653.3
AS989473.9
AC022509.1
AE378467.1
M_B.csv: AC084346.2, AC084824.4
M_C.csv: AC022509.2, AC055720.2
M_D.csv: AC018653.3, AC022509.1
setwd("/data/")
library(tidyverse)
library(magrittr)

genes <- Sys.glob(file.path("M_*.csv"))
genes.read <- lapply(genes,function(x) read.delim(x, header = FALSE))
genes.read <- lapply(genes.read, function(x) set_colnames(x, "Genes"))
ref2 <- list.files(pattern = "UP")
ref2
ref.read <- read.delim(ref2[[1]])
intersect <- lapply(seq_along(genes.read), function(x) 
  intersect(genes.read[[x]], ref.read))
for(i in 1:length(genes.read)) { 
  cat(genes[[i]],":",intersect[[i]]$Genes, "\n")
}
M_B.csv
有如下内容:

data
  |___ UPA.csv
  |___ M_B.csv
  |___ M_C.csv
  |___ M_D.csv
  |___ M_E.csv
Genes
AC018653.3
AC022509.1
AC022509.2
AC055720.2
AC082651.1
AC084346.2
AC084824.4
AC092171.4
AC092803.2
AC084346.2
AD097808.3
AC084824.4
ADFR3564.8
A1982983.4
AC098789.3
AC022509.2
AC783546.3
AC055720.2
AC018653.3
AS989473.9
AC022509.1
AE378467.1
M_B.csv: AC084346.2, AC084824.4
M_C.csv: AC022509.2, AC055720.2
M_D.csv: AC018653.3, AC022509.1
setwd("/data/")
library(tidyverse)
library(magrittr)

genes <- Sys.glob(file.path("M_*.csv"))
genes.read <- lapply(genes,function(x) read.delim(x, header = FALSE))
genes.read <- lapply(genes.read, function(x) set_colnames(x, "Genes"))
ref2 <- list.files(pattern = "UP")
ref2
ref.read <- read.delim(ref2[[1]])
intersect <- lapply(seq_along(genes.read), function(x) 
  intersect(genes.read[[x]], ref.read))
for(i in 1:length(genes.read)) { 
  cat(genes[[i]],":",intersect[[i]]$Genes, "\n")
}
M_C.csv
有如下内容:

data
  |___ UPA.csv
  |___ M_B.csv
  |___ M_C.csv
  |___ M_D.csv
  |___ M_E.csv
Genes
AC018653.3
AC022509.1
AC022509.2
AC055720.2
AC082651.1
AC084346.2
AC084824.4
AC092171.4
AC092803.2
AC084346.2
AD097808.3
AC084824.4
ADFR3564.8
A1982983.4
AC098789.3
AC022509.2
AC783546.3
AC055720.2
AC018653.3
AS989473.9
AC022509.1
AE378467.1
M_B.csv: AC084346.2, AC084824.4
M_C.csv: AC022509.2, AC055720.2
M_D.csv: AC018653.3, AC022509.1
setwd("/data/")
library(tidyverse)
library(magrittr)

genes <- Sys.glob(file.path("M_*.csv"))
genes.read <- lapply(genes,function(x) read.delim(x, header = FALSE))
genes.read <- lapply(genes.read, function(x) set_colnames(x, "Genes"))
ref2 <- list.files(pattern = "UP")
ref2
ref.read <- read.delim(ref2[[1]])
intersect <- lapply(seq_along(genes.read), function(x) 
  intersect(genes.read[[x]], ref.read))
for(i in 1:length(genes.read)) { 
  cat(genes[[i]],":",intersect[[i]]$Genes, "\n")
}
M_D.csv
有如下内容:

data
  |___ UPA.csv
  |___ M_B.csv
  |___ M_C.csv
  |___ M_D.csv
  |___ M_E.csv
Genes
AC018653.3
AC022509.1
AC022509.2
AC055720.2
AC082651.1
AC084346.2
AC084824.4
AC092171.4
AC092803.2
AC084346.2
AD097808.3
AC084824.4
ADFR3564.8
A1982983.4
AC098789.3
AC022509.2
AC783546.3
AC055720.2
AC018653.3
AS989473.9
AC022509.1
AE378467.1
M_B.csv: AC084346.2, AC084824.4
M_C.csv: AC022509.2, AC055720.2
M_D.csv: AC018653.3, AC022509.1
setwd("/data/")
library(tidyverse)
library(magrittr)

genes <- Sys.glob(file.path("M_*.csv"))
genes.read <- lapply(genes,function(x) read.delim(x, header = FALSE))
genes.read <- lapply(genes.read, function(x) set_colnames(x, "Genes"))
ref2 <- list.files(pattern = "UP")
ref2
ref.read <- read.delim(ref2[[1]])
intersect <- lapply(seq_along(genes.read), function(x) 
  intersect(genes.read[[x]], ref.read))
for(i in 1:length(genes.read)) { 
  cat(genes[[i]],":",intersect[[i]]$Genes, "\n")
}
我想检查
UPA.csv
中的哪些
基因也在其他文件中找到。并希望获得文件名

我希望输出如下所示:

data
  |___ UPA.csv
  |___ M_B.csv
  |___ M_C.csv
  |___ M_D.csv
  |___ M_E.csv
Genes
AC018653.3
AC022509.1
AC022509.2
AC055720.2
AC082651.1
AC084346.2
AC084824.4
AC092171.4
AC092803.2
AC084346.2
AD097808.3
AC084824.4
ADFR3564.8
A1982983.4
AC098789.3
AC022509.2
AC783546.3
AC055720.2
AC018653.3
AS989473.9
AC022509.1
AE378467.1
M_B.csv: AC084346.2, AC084824.4
M_C.csv: AC022509.2, AC055720.2
M_D.csv: AC018653.3, AC022509.1
setwd("/data/")
library(tidyverse)
library(magrittr)

genes <- Sys.glob(file.path("M_*.csv"))
genes.read <- lapply(genes,function(x) read.delim(x, header = FALSE))
genes.read <- lapply(genes.read, function(x) set_colnames(x, "Genes"))
ref2 <- list.files(pattern = "UP")
ref2
ref.read <- read.delim(ref2[[1]])
intersect <- lapply(seq_along(genes.read), function(x) 
  intersect(genes.read[[x]], ref.read))
for(i in 1:length(genes.read)) { 
  cat(genes[[i]],":",intersect[[i]]$Genes, "\n")
}
为此,我尝试如下:

data
  |___ UPA.csv
  |___ M_B.csv
  |___ M_C.csv
  |___ M_D.csv
  |___ M_E.csv
Genes
AC018653.3
AC022509.1
AC022509.2
AC055720.2
AC082651.1
AC084346.2
AC084824.4
AC092171.4
AC092803.2
AC084346.2
AD097808.3
AC084824.4
ADFR3564.8
A1982983.4
AC098789.3
AC022509.2
AC783546.3
AC055720.2
AC018653.3
AS989473.9
AC022509.1
AE378467.1
M_B.csv: AC084346.2, AC084824.4
M_C.csv: AC022509.2, AC055720.2
M_D.csv: AC018653.3, AC022509.1
setwd("/data/")
library(tidyverse)
library(magrittr)

genes <- Sys.glob(file.path("M_*.csv"))
genes.read <- lapply(genes,function(x) read.delim(x, header = FALSE))
genes.read <- lapply(genes.read, function(x) set_colnames(x, "Genes"))
ref2 <- list.files(pattern = "UP")
ref2
ref.read <- read.delim(ref2[[1]])
intersect <- lapply(seq_along(genes.read), function(x) 
  intersect(genes.read[[x]], ref.read))
for(i in 1:length(genes.read)) { 
  cat(genes[[i]],":",intersect[[i]]$Genes, "\n")
}
请尝试以下操作:

UPA <- read.csv('UPA.csv')
filenames <- list.files(pattern = 'M_.*\\.csv$')

do.call(rbind, lapply(filenames, function(x) {
  data <- read.delim(x, header = FALSE)
  names(data) <- 'Genes'
  cbind(file = x, subset(data, Genes %in% UPA$Genes))
})) -> result
这将为您提供如下输出:

result

#       Genes    file 
#1 AC084346.2 M_B.csv
#2 AC084824.4 M_B.csv
#3 AC022509.2 M_C.csv
#4 AC055720.2 M_C.csv
#...

非常感谢。对于
tidyverse
,什么是
list\u dat
?对不起,应该是
文件名。我已经更新了答案。