r - 如何在使用 bind_rows() 之前删除列表中的空数据框?
问题描述
我有一个混合数据框、小标题和空列表的列表。bind_rows
在申请附加其余数据框之前,如何删除 tibble 和空列表?
我尝试使用该delete.NULLs
功能,但出现错误:
错误:找不到函数“delete.NULLs”
解决方案
我们可以用discard
library(purrr)
discard( lst1, ~is.vector(.x) || is.null(.x)|is_tibble(.x) )
编辑:来自@ArtemSokolov 的评论
或从base R
out <- Filter(function(x) !(is.vector(x) | is.null(x) |is_tibble(x)), lst1)
out
#[[1]]
# col1
#1 1
#2 2
#3 3
#[[2]]
# A B
#1 1 2
#2 2 3
#3 3 4
#4 4 5
#5 5 6
delete.NULLs
中找不到该函数base R
。但是,它可以用is.null
和 negate ( !
) 的组合来创建。
数据
lst1 <- list(data.frame(col1 = 1:3), NULL, tibble(col1 = 1:5,
col2 = 2:6), NA, data.frame(A = 1:5, B = 2:6))
推荐阅读
- google-app-maker - 如何使单选组按钮水平显示而不是垂直显示?
- jackson - 记录自定义数据映射
- excel - 计算逗号分隔列表中的奇数和偶数
- neural-network - Pytorch minibatching 使模型无法训练
- ruby-on-rails - 如何在同一台服务器上部署单独的 Rails API 后端和 React 前端
- javascript - 如何使用 this 关键字向构造函数添加新属性?
- gcc - 如何编译 VBScript 以包含 DLL 处理程序?
- php - 如何在 Laravel 中使用 select 获取相关字段值?
- python-3.x - 如何更正输入提示中大括号的显示?
- mysql - MySql如何根据查询类型创建一行并添加子表?