r - 从包含特定字符串的嵌套列表中删除项目
问题描述
我想删除包含字符串的 R 列表的嵌套项available
。但是,我需要保持列表大小(即NULL
如果所有项目都已删除)。下面的代码生成一个可能的输入,应该从中删除所有项目:
nested.list <- list()
for(lop in 1:4){
nested.list[[lop]] <- c("available","available")}
预期的输出是:
for(lop in 1:4){
nested.list.out[lop] <- list(NULL)}
但是,如果该项目不是available
,则应保留。让我们假设以下输入:
nested.list[[1]][[2]] <- "hold"
预期的输出将是:
nested.list.out[[1]] <- "hold"
重要的是要强调该字符串hold
只是为了举例说明。在我的真实数据集中,每个嵌套列表的每个项目都可以有随机字符串,并且都应该保存在我的输出中。任何想法明智地做到这一点?
解决方案
最简单的方法是使用lapply
循环列表。在每次迭代中删除所有available
字符串,NULL
如果结果向量为空则返回。
nested.list.out <- lapply(nested.list, function(x) {
x <- x[x != "available"] # Remove "available" from vector
if (length(x) < 1){
# Here resulting vector is empty, so return NULL
return(NULL)
} else {
return(x)
}
})
推荐阅读
- angular - 最佳从 EventEmitter 事件重新进入 ngZone
- sql - 为什么 MS-SQL-Server(所有版本)将 1.0/12.0 转换为 numeric(8,6)?
- c# - HTTP Post 从数据中删除内容
- python - APScheduler 作业 ID:为什么允许作业共享 ID?
- javascript - 从网站下载由 Qt 中的 Javascript 创建的文件
- oracle - 如何在oracle中连接一个字段中的行,并查询多个表
- ios - UITableViewCell 中的自动播放视频
- c# - 如何使用特定的 nuget 包目标?
- javascript - javascript:未捕获的类型错误:无法将属性“禁用”设置为 null
- ios - 如何获得旧的 Xcode beta 版本?