问题描述
直接了解情况
我正在使用足球跟踪数据,我有一个事件列表,并且在每个元素内记录了比赛的不同情况。我对所制作的通行证感兴趣。我有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
问题来了: 有时,传递者或其他属性的数据会丢失,并弄乱了整行。 Here is a screenshot.
这里是一个问题: 如何编写if语句来检查该特定属性(即Passer)是否存在于元素中,以及是否不存在,以用NA填充列?
谢谢大家!
解决方法
经过一番修补后,我不确定这是性能最优化的版本,但是可以完成工作。
代码是:
body.part <- if("body_part" %in% names(uruguay.pass.temp$pass)){uruguay.pass.temp$pass$body_part$name}else{NA}