首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >应用嵌套在中,而不是在R中工作

应用嵌套在中,而不是在R中工作
EN

Stack Overflow用户
提问于 2017-12-27 20:38:38
回答 1查看 55关注 0票数 0

就在今天早些时候,我收到了一个非常有用的答案,我遇到了一个问题,这个问题让我可以进入我的一个项目的下一个步骤。然而,我后来又被困在了这个项目中,我想知道你们中是否有人能帮我继续前进。

上下文

目前,我有一个被称为wc_match_dataframes的足球比赛的数据帧列表。以下是其中一个数据框架的样子:

代码语言:javascript
复制
type_id tourn_id day month year team_A   score_A score_B team_B   win     loss
f       wc_1934  27  5     1934 Germany  5       2       Belgium  Germany Belgium

我无法对最后三列( drawdrawAdrawB )的数据进行拟合,但如果匹配是平局,则draw列基本上是TRUE,如果不是,则为FALSE。在抽签的情况下,赢和输列都是由Draw填充的。如果匹配是抽签,则drawA列由team_A填充,同样,drawB列由team_B填充。

type_id要么是f,要么是q,取决于比赛是世界杯预选赛还是世界杯决赛。tourn_id指的是比赛的目的,无论是预选赛还是决赛。

总共有39个这样的数据框架,20个世界杯赛事的每一个都有一个“决赛”数据框架,19个世界杯的“预选赛”数据框架(第一届世界杯没有预选赛)。

我想做什么

我试图填充一个不同的数据帧列表,wc_dataframes中的20届世界杯的每一个国家级别的数据,而不是比赛级别。这20个数据帧中的每一个都将有进入上述锦标赛决赛的国家,它们的数据如下:

  1. 国家/地区
  2. 在资格赛中获胜
  3. 决赛获胜
  4. 资格损失
  5. 决赛失利

..。诸若此类。

我已经能够为每个世界杯填充第一个country列--没问题,但是我遇到了其他专栏的问题。

以下是我正在做的事情

这是我的代码的未循环版本(只适用于一个世界杯),它成功地工作了:

代码语言:javascript
复制
wc_dataframes$wc_1930$fw  <- apply(wc_dataframes$wc_1930, MARGIN = 1, function(country)
                         sum(wc_match_dataframes$`wc_1930 f`$w == country, na.rm = TRUE))

这是通过计数获胜数来成功地填充wc_dataframes$wc_1930数据帧中的决赛胜利列。

现在,当我试着在下筑巢时,在世界杯的所有年份都这样做:

代码语言:javascript
复制
lapply(names(wc_dataframes), function(year)
      wc_dataframes$year$fw  <- apply(wc_dataframes$year, MARGIN = 1, function(country)
        sum(wc_match_dataframes$`year f`$w == country, na.rm = TRUE)))

这对我不管用。我怀疑这个问题与定义year函数和在我的代码的sum部分中遇到问题有关。我来自STATA的背景,所以我更习惯于运行for循环等等。我仍然习惯了R,列表和所有的东西,所以我真的很感激你的帮助。

谢谢!

提前感谢您的帮助,祝您节日快乐!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-12-27 21:18:21

您需要的是输出您所替换的任何内容:

代码语言:javascript
复制
lapply(names(wc_dataframes), function(year){
  wc_dataframes[[year]]$fw  <- apply(wc_dataframes[[year]], MARGIN = 1, function(country)
    sum(wc_match_dataframes[[paste(year,'f')]]$w == country, na.rm = TRUE));
  wc_dataframes}
  )
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47998361

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档