如何在R语言中提取列表中NULL元素的位置
获取R语言列表中NULL元素的位置
嘿,这事儿超简单!你只需要在你现有的sapply判断逻辑基础上,加上which()函数就能直接拿到NULL元素的位置索引,完全不用先提取整个条目。
先模拟你描述的那个列表来演示:
# 构造符合你需求的示例列表 my_list <- list(name1 = "xxxx", name2 = "xxxx", name3 = NULL)
然后用下面一行代码就能直接得到NULL元素的位置:
null_pos <- which(sapply(my_list, is.null)) print(null_pos) # 输出结果: 3
简单解释下原理
sapply(my_list, is.null)会遍历列表的每个元素,返回一个逻辑向量:对应NULL元素的位置是TRUE,其他位置是FALSE,这里得到的就是c(FALSE, FALSE, TRUE)。which()函数的作用就是找出这个逻辑向量里所有TRUE对应的索引值,正好就是你需要的NULL元素的位置。
如果你的列表里有多个NULL元素,这个方法也能一次性返回所有对应的位置,比如:
multi_null_list <- list(a = 1, b = NULL, c = "test", d = NULL) which(sapply(multi_null_list, is.null)) # 输出结果: 2 4
这样就完全满足你后续操作需要位置信息的需求啦!
内容的提问来源于stack exchange,提问作者Krutik
相关产品推荐
相关产品推荐

