如何在R中生成仅含指定信息的目标蛋白质表格?
解决R代码筛选显著蛋白质并拆分表头的问题
原代码存在的问题
- 读取数据时仅选取了A列,丢失了Log2、Significance等核心数据列
- 未对Significance为
+/!的显著条目进行筛选 - 去除
_P01类后缀的逻辑错误(trimws(whitespace = ".*")会清空内容)
修改后的完整代码
library(readxl) library(dplyr) library(tidyr) library(stringr) library(writexl) # 读取完整数据(确保包含所有需要的列,若需限制行数可改为range = "A2:D5000") totalproteome <- read_excel("C:/Users/cd.xlsx", sheet = 4, skip = 1) # 数据处理流程 processed_data <- totalproteome %>% # 筛选Significance为+或!的显著条目 filter(Significance %in% c("+", "!")) %>% # 拆分Fasta headers中用;分隔的多个条目 separate_rows(`Fasta headers`, sep = ";") %>% # 去除_P01、_P02这类后缀(正则匹配下划线+P+数字格式) mutate(`Fasta headers` = str_remove(`Fasta headers`, "_P\\d+")) %>% # 保留需要的目标列 select(`Fasta headers`, Log2, Significance) %>% # 去重(按需保留,若无需去重可删除此行) distinct() # 输出结果到Excel文件 write_xlsx(processed_data, "BOOK.xlsx")
关键改动说明
- 读取完整数据:移除了仅限制A列的
range参数,确保Log2、Significance列被正确读取 - 筛选显著条目:通过
filter语句直接过滤出标记为+或!的行,排除无意义条目 - 精准去除后缀:使用
stringr::str_remove配合正则表达式,只删除_P加数字的后缀,保留蛋白质名称 - 规范输出列:用
select明确指定输出列,确保结果格式与期望完全匹配
内容的提问来源于stack exchange,提问作者code_newbie
相关产品推荐
相关产品推荐

