是否有 R 函数重复相同的代码但过滤特定对象

Is there an R fuction to repeat same code but filter for specific objects

这是我正在使用的代码:

TE1<- transposons %>% select("Chromosome", "Annotator", "Repeat_class.superfamily", "Start", "End") %>% filter(Chromosome == "I") %>% arrange(Start)

我需要再重复此代码五次,但在每次重复时过滤不同的染色体。因此,应该有五个 table 命名为:TE1、TE2、TE3、TE4 和 TE5。在每个 table 中每个染色体的正确数据。

是否可以通过一行代码实现这一目标?我试图将其放入 for 循环中,但无法实现。

您可以在 for 循环中使用 assign,为每次交互更改染色体。

chromosomes = c("I", "A", "K", "C", "D") #The values of the 5 chromosomes

for(i in 1:5){
  assign(paste0("TE",i),
         transposons %>% select("Chromosome", "Annotator", "Repeat_class.superfamily", "Start", "End") %>% filter(Chromosome == chromosomes[i]) %>% arrange(Start))}

我建议将这些表添加到列表中,而不是为每个表创建一个新变量:

new.list = list()
for(i in 1:5){
   new.list[[paste0("TE",i)]] = transposons %>% select("Chromosome", "Annotator", "Repeat_class.superfamily", "Start", "End") %>% filter(Chromosome == chromosomes[i]) %>% arrange(Start))}