基于R中的列表创建新的数据帧

基于R中的列表创建新的数据帧,r,list,loops,indexing,R,List,Loops,Indexing,我想创建大约20个新的数据帧,我希望这些数据帧的名称是“匹配的国家”,其中[country]是国家列表中的国家的名称。我以为for循环是解决方案,但我无法让它工作 这是我尝试的(结果是df): 有了这个,我想我会得到一个列表中每个国家的数据框,每个数据框中都有这个国家的所有比赛,无论是主队还是客队。但是,它会创建不带任何数据的匹配项 编辑:结果是一个包含国际足球比赛的表格,每场比赛都是一行,列是日期、主队、客队、主队、客队、锦标赛等 我怎样才能解决这个问题呢?你有一些好主意。 但是在object

我想创建大约20个新的数据帧,我希望这些数据帧的名称是“匹配的国家”,其中[country]是国家列表中的国家的名称。我以为for循环是解决方案,但我无法让它工作

这是我尝试的(结果是df):

有了这个,我想我会得到一个列表中每个国家的数据框,每个数据框中都有这个国家的所有比赛,无论是主队还是客队。但是,它会创建不带任何数据的匹配项


编辑:结果是一个包含国际足球比赛的表格,每场比赛都是一行,列是日期、主队、客队、主队、客队、锦标赛等

我怎样才能解决这个问题呢?

你有一些好主意。 但是在objectname上添加i与“matches_[country]”不匹配。您将得到一个名为matches_i的对象。home_team=='i'将查找名为i的国家,而不是实际的国家名称(这就是您的数据框为空的原因。没有名为i的国家)。主队==i(不带引号)将完成此任务

因此,我制作了一个较小的
结果
数据集和一个较短的
国家
列表作为示例

results <- data.frame(home_team = c('Netherlands', 'England', 'Brazil'),
                      away_team = c("Spain", "Italy", "England"))

countries <- list('Netherlands', 'England', "Brazil", "Spain", "Italy") 

结果请
dput(结果)
并将结果粘贴到问题中!首先不要做“i”
结果是一张国际足球比赛的表格,每场比赛都是一行,列是日期、主队、客队、主队得分、客队得分、锦标赛等。你在找什么?
results <- data.frame(home_team = c('Netherlands', 'England', 'Brazil'),
                      away_team = c("Spain", "Italy", "England"))

countries <- list('Netherlands', 'England', "Brazil", "Spain", "Italy") 
                       
for (i in countries) {
  matches <- filter(results, home_team == i | away_team == i)
  assign(paste("matches_", i, sep = ""), matches)
}