如何将Data Frame/Tibble转换为命名向量列表?
把Tibble转换为命名列表的方法
这里有几种简洁的方式可以将你的tibble转换成以seq_name为名称、对应peptide为元素的命名列表:
方法1:Base R的split()函数
这是最直接的方法,利用split()按分组列拆分目标列,自动生成命名列表:
# 生成目标列表 result_list <- split(dat$peptide, dat$seq_name) # 查看结果 result_list #> $Peptide_set1.r1 #> [1] "KSKLRHGC" #> #> $Peptide_set2.r1 #> [1] "AAYVYVNQF"
方法2:Tidyverse工具链
如果你习惯用tidyverse的语法,可以结合deframe()和as.list()来实现:
library(tidyverse) result_list <- dat %>% deframe() %>% # 先转换为命名向量(名称是seq_name,值是peptide) as.list() # 再将命名向量转为列表
或者用更直观的分组拆分方式:
result_list <- dat %>% group_split(seq_name, .keep = FALSE) %>% # 按seq_name分组拆分 set_names(dat$seq_name) %>% # 给每个分组设置名称 map(unlist) # 把每个分组的tibble转为字符串向量
两种方法最终都会得到你预期的列表结构~
内容的提问来源于stack exchange,提问作者littleworth
相关产品推荐
相关产品推荐

