循环命名变量

时间:2019-09-06 14:31:36

标签: r

如何通过遍历R中的团队名称列表来实现与以下代码相同的功能?

teamnames <- list("Arsenal", "Bournemouth", "Brighton", "Burnley", "Chelsea", "CrystalPalace", "Everton", "Leicester", "Liverpool",
                  "ManCity", "ManUtd", "Newcastle", "Southampton", "Tottenham", "Watford", "Watford", "WestHam", "Wolves")


Arsenal_fixtures <- read.csv("Arsenal_fixtures.csv")
Bournemouth_fixtures <- read.csv("Bournmouth_fixtures.csv")
Brighton_fixtures <- read.csv("Brighton_fixtures.csv")
Burnley_fixtures <- read.csv("Burnley_fixtures.csv")
Chelsea_fixtures <- read.csv("Chelsea_fixtures.csv")
CrystalPalace_fixtures <- read.csv("CrystalPalace_fixtures.csv")
Everton_fixtures <- read.csv("Everton_fixtures.csv")
Leicester_fixtures <- read.csv("Leicester_fixtures.csv")
Liverpool_fixtures <- read.csv("Liverpool_fixtures.csv")
ManCity_fixtures <- read.csv("ManCity_fixtures.csv")
ManUtd_fixtures <- read.csv("ManUtd_fixtures.csv")
Newcastle_fixtures <- read.csv("Newcastle_fixtures.csv")
Southampton_fixtures <- read.csv("Southampton_fixtures.csv")
Tottenham_fixtures <- read.csv("Tottenham_fixtures.csv")
Watford_fixtures <- read.csv("Watford_fixtures.csv")
WestHam_fixtures <- read.csv("WestHam_fixtures.csv")
Wolves_fixtures <- read.csv("Wolves_fixtures.csv")

1 个答案:

答案 0 :(得分:2)

我们可以使用paste在'teamnames'向量中添加后缀_fixtures.csv并立即读入list

lst1 <- lapply(paste0(teamnames, "_fixtures.csv"), read.csv)

然后设置list元素的名称以进行正确识别

names(lst1) <- paste0(teamnames, "_fixtures")

如果我们要提取list的元素,请使用[[

lst1[["Arsenal_fixtures"]]

或者另一个选择是tidyverse

library(tidyverse)
library(readr)
lst2 <- map(str_c(teamnames, "_fixtures.csv"), read_csv)
相关问题