在R语言中如何筛选带名称列表的非指定元素?
问题解答
不行,R里不支持list_names[[-"NAME A"]]这种写法——负索引仅适用于数值型下标,没法直接对字符型名称加负号来取反筛选。
要得到除"NAME A"之外的所有元素,有几种实用的写法:
利用
setdiff筛选目标名称外的所有键名,再索引列表:list_names[setdiff(names(list_names), "NAME A")]这种方法还支持一次性排除多个名称,比如
setdiff(names(list_names), c("NAME A", "NAME B")),通用性更强。用逻辑判断取反,直接筛选名称不等于目标的元素:
list_names[names(list_names) != "NAME A"]如果确定目标元素的位置,也可以用负数值索引(但不推荐,因为列表元素的位置可能变动):
list_names[-which(names(list_names) == "NAME A")]
内容的提问来源于stack exchange,提问作者JohnBones JohnBones
相关产品推荐
相关产品推荐

