当它有零行和 n() 列时从列表中删除 tibble
delete tibble from list when it has zero rows and n() columns
所以我有一个脚本可以生成一组列表作为输出。它第一次在一个包含零行的列表中生成了一个 tibble:
(图片中的测试列表[[2]])
这已经停止了前进的进程。
我发现了几个关于删除空小标题或类似内容的线程,当它们是与小标题或列表相关联的某些操作时,我试图提取建议的几个过滤器部分以仅删除小标题部分和有几个 运行,但 none 有效。
我只想从我的列表中删除所有带有“0 行”的标题。在这种情况下,列表中的 testlist[[2]]。我知道这必须非常简单,但我被卡住了。
list_of_mtcars <- list(mtcars[1,], mtcars[1:2,], mtcars[0,])
list_of_mtcars
# [[1]]
# mpg cyl disp hp drat wt qsec vs am gear carb
# Mazda RX4 21 6 160 110 3.9 2.62 16.46 0 1 4 4
# [[2]]
# mpg cyl disp hp drat wt qsec vs am gear carb
# Mazda RX4 21 6 160 110 3.9 2.620 16.46 0 1 4 4
# Mazda RX4 Wag 21 6 160 110 3.9 2.875 17.02 0 1 4 4
# [[3]]
# [1] mpg cyl disp hp drat wt qsec vs am gear carb
# <0 rows> (or 0-length row.names)
Filter(nrow, list_of_mtcars)
# [[1]]
# mpg cyl disp hp drat wt qsec vs am gear carb
# Mazda RX4 21 6 160 110 3.9 2.62 16.46 0 1 4 4
# [[2]]
# mpg cyl disp hp drat wt qsec vs am gear carb
# Mazda RX4 21 6 160 110 3.9 2.620 16.46 0 1 4 4
# Mazda RX4 Wag 21 6 160 110 3.9 2.875 17.02 0 1 4 4
使用 purrr::map_lgl
的选项。
library(purrr)
tblList[map_lgl(tblList, ~ nrow(.) != 0)]
# [[1]]
# # A tibble: 1 x 1
# x
# <dbl>
# 1 1
#
# [[2]]
# # A tibble: 1 x 1
# x
# <dbl>
# 1 2
数据
tblList <- list(structure(list(x = 1), row.names = c(NA, -1L), class = c("tbl_df",
"tbl", "data.frame")), structure(list(x = numeric(0)), row.names = integer(0), class = c("tbl_df",
"tbl", "data.frame")), structure(list(x = 2), row.names = c(NA,
-1L), class = c("tbl_df", "tbl", "data.frame")))
选项keep
library(purrr)
keep(testlist, ~ nrow(.x) > 0)
所以我有一个脚本可以生成一组列表作为输出。它第一次在一个包含零行的列表中生成了一个 tibble:
(图片中的测试列表[[2]])
这已经停止了前进的进程。
我发现了几个关于删除空小标题或类似内容的线程,当它们是与小标题或列表相关联的某些操作时,我试图提取建议的几个过滤器部分以仅删除小标题部分和有几个 运行,但 none 有效。
我只想从我的列表中删除所有带有“0 行”的标题。在这种情况下,列表中的 testlist[[2]]。我知道这必须非常简单,但我被卡住了。
list_of_mtcars <- list(mtcars[1,], mtcars[1:2,], mtcars[0,])
list_of_mtcars
# [[1]]
# mpg cyl disp hp drat wt qsec vs am gear carb
# Mazda RX4 21 6 160 110 3.9 2.62 16.46 0 1 4 4
# [[2]]
# mpg cyl disp hp drat wt qsec vs am gear carb
# Mazda RX4 21 6 160 110 3.9 2.620 16.46 0 1 4 4
# Mazda RX4 Wag 21 6 160 110 3.9 2.875 17.02 0 1 4 4
# [[3]]
# [1] mpg cyl disp hp drat wt qsec vs am gear carb
# <0 rows> (or 0-length row.names)
Filter(nrow, list_of_mtcars)
# [[1]]
# mpg cyl disp hp drat wt qsec vs am gear carb
# Mazda RX4 21 6 160 110 3.9 2.62 16.46 0 1 4 4
# [[2]]
# mpg cyl disp hp drat wt qsec vs am gear carb
# Mazda RX4 21 6 160 110 3.9 2.620 16.46 0 1 4 4
# Mazda RX4 Wag 21 6 160 110 3.9 2.875 17.02 0 1 4 4
使用 purrr::map_lgl
的选项。
library(purrr)
tblList[map_lgl(tblList, ~ nrow(.) != 0)]
# [[1]]
# # A tibble: 1 x 1
# x
# <dbl>
# 1 1
#
# [[2]]
# # A tibble: 1 x 1
# x
# <dbl>
# 1 2
数据
tblList <- list(structure(list(x = 1), row.names = c(NA, -1L), class = c("tbl_df",
"tbl", "data.frame")), structure(list(x = numeric(0)), row.names = integer(0), class = c("tbl_df",
"tbl", "data.frame")), structure(list(x = 2), row.names = c(NA,
-1L), class = c("tbl_df", "tbl", "data.frame")))
选项keep
library(purrr)
keep(testlist, ~ nrow(.x) > 0)