r - 如何过滤掉 tibble 列表列的 NULL 元素
问题描述
我有一个像下面这样的小标题:
structure(list(id = 1:11, var1 = c("A", "C", "B", "B", "B", "A",
"B", "C", "C", "C", "B"), var2 = list(NULL, NULL, NULL, structure(list(
x = c(0, 1, 23, 3), y = c(0.75149005651474, 0.149892757181078,
0.695984086720273, 0.0247649133671075)), row.names = c(NA,
-4L), class = c("tbl_df", "tbl", "data.frame")), NULL, NULL,
NULL, NULL, NULL, NULL, NULL)), row.names = c(NA, -11L), class = c("tbl_df",
"tbl", "data.frame"))
我只想留下var2
不为空的行。但简单的!is.null()
就是行不通。df %>% filter(!is.null(var2))
返回整个df
. 为什么会这样?如何过滤掉所有列NULL
中的行var2
?
解决方案
还涉及的一种可能性purrr
可能是:
df %>%
filter(!map_lgl(var2, is.null))
id var1 var2
<int> <chr> <list>
1 4 B <tibble [4 × 2]>
反映 的属性is.null()
,您还可以执行以下操作:
df %>%
rowwise() %>%
filter(!is.null(var2))
推荐阅读
- python-3.x - UnboundLocalError:在分配局部变量“emoji_count”之前引用
- android - 如何读取所有 routeUp 对象?
- angular - 如何在 testCafe 中模拟文本选择
- python - 使用 pandas 连接两个数据框中的不同列(并附加相似的列)
- php - 使用 PHP 处理程序在服务器发送的事件中丢失数据
- javascript - 基本问题 React with express 动态表
- spring-boot - springboot中如何增加允许的headers数量
- jquery - 需要帮助在 Tampermonkey 用户脚本中使用 JQuery 在 iFrame 中选择和更改 div id 的高度
- linux - 在linux中使用单个命令重命名具有复杂名称的多个zip文件
- asp.net-core - IdentityServer4 签名证书参考令牌