如何在R中使用循环重复代码

qgelzfjb  于 2023-06-19  发布在  其他
关注(0)|答案(1)|浏览(127)

我知道有答案在那里,但它仍然困惑我,因为它通常是更高级的任务,这是一个非常简单的任务。
我有21个 Dataframe ,格式为data_1data_2data_3等。它们都有相同的标题,只是行中的值不同。我想将所有数据框的列1重命名为“ID”。我一直在使用:

names(data_1)[1] <- "ID"
names(data_2)[1] <- "ID" #etc

我怎样才能创建一个循环来自动循环使用该模式的所有 Dataframe ?
我有另一组 Dataframe ,名为df_1df_2df_3。这个df_1有一个公共列(ID),我想与data_1建立一个内部连接,并对data_2和df_2等重复。我用的是:

result_1 <- inner_join(data_1, df_1, by = "ID")
result_2 <- inner_join(data_2, df_2, by = "ID") #etc

我怎么能循环这个,而不是重复21次呢?

dbf7pr2w

dbf7pr2w1#

将数据作为容器是一种很好的做法(即列表)。例如

list1 <- mget(ls(pattern = "data_\\d+"))
 list2 <- mget(ls(pattern = 'df_\\d+'))

然后你可以循环两个:

purrr::map(list1, list2, ~inner_join(setnames(.x, c('ID',names(.x)[-1])), .y, by= 'ID'))

相关问题