首页 > 解决方案 > R中的足球数据-使用if语句检查元素中是否缺少属性?

问题描述

直接说情况:

我正在处理足球跟踪数据,我有一个事件列表,每个元素都记录了比赛的不同情况。我对所做的传球很感兴趣。我有 for 循环遍历列表并让我为特定团队提供每一次通行证。

for (p in 1:length(uruguay.passes)){
  uruguay.pass.temp <- all.events[[uruguay.passes[p]]]
  possession <- uruguay.pass.temp$possession
  passer <- uruguay.pass.temp$player$id
  .
  .
  body.part <- uruguay.pass.temp$pass$body_part$name

问题来了:有时 passer 或其他属性的数据会丢失,并且会弄乱整行。 这是一个屏幕截图。

问题来了:我如何编写一个 if 语句来检查元素中是否存在特定属性(即 Passer)以及是否不存在以用 NA 填充列?

谢谢大家!

标签: rif-statementeventsattributesmissing-data

解决方案


经过一番修补,我到了那里,不确定这是性能优化程度最高的版本,但它完成了工作。

代码是:

body.part <- if("body_part" %in% names(uruguay.pass.temp$pass)){uruguay.pass.temp$pass$body_part$name}else{NA}

推荐阅读