首页 > 解决方案 > 区分空列表或空数据框

问题描述

我正在使用一个似乎返回格式错误数据的 API。API 应该返回嵌套的数据帧,但有时也返回空列表:

column_name
<list>
<data.frame [1 × 5]>                
<data.frame [0 × 0]>                
<data.frame [0 × 0]>                
<list [0]>
...

在这一步之后,我想使用unnest下游嵌套数据帧中的数据。但是,空列表阻止了这种情况的发生。我想做的是:

但是,我测试空列表的首选方法有点平淡,因为数据框就是一个列表。目前我正在考虑使用identicalall.equal结合dim进行测试。即如果条目的维度是[1,1],则将该条目替换为空数据框。

(我想知道在我有一个维度为 [1,1] 但实际上也有数据的情况下会发生什么......)

这是最 R 的方式吗?我已经从其他地方的 API 中看到了这种行为,所以我需要在多个地方使用这个功能。

注意我正在使用 tidyverse,如果这会影响答案。

标签: rlistdataframe

解决方案


数据框是特殊list的,但类是dataframe. 您可以通过这种方式测试课程:

class(data.frame()) == "list"
> FALSE
class(list()) == "list"
> TRUE

推荐阅读