You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在R中按名称范围从列表选取元素构建新列表?

提取列表中指定名称范围的元素

在R里不能直接用AE:SUPPCM这种名称范围的方式索引列表,因为:运算符默认只对数值位置或连续字符序列生效,而你的列表名称是离散的键值,没法直接用名称生成范围。不过可以通过先获取目标元素的位置,再用位置范围来实现需求,步骤如下:

实现代码

# 获取列表所有元素的名称
list_names <- names(spec_list)

# 找到起始和结束元素的位置
start_pos <- which(list_names == "AE")
end_pos <- which(list_names == "SUPPCM")

# 用位置范围提取目标元素
lst2 <- spec_list[start_pos:end_pos]

验证效果

你可以先打印list_names确认位置是否正确:

print(list_names)
# 输出应该是:
# [1] "README"          "SIGN_OFF"        "REVISION_HISTORY" "Study"           
# [5] "Datasets"        "AE"              "SUPPAE"           "CM"              
# [9] "SUPPCM"

可以看到AE在第6位,SUPPCM在第9位,6:9正好对应你需要的4个元素,和你之前逐个列举名称的结果完全一致。

简化写法

如果想更简洁,也可以把步骤合并成一行:

lst2 <- spec_list[which(names(spec_list) == "AE"):which(names(spec_list) == "SUPPCM")]

内容的提问来源于stack exchange,提问作者Stataq

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 00:12:39