首页 > 其他分享 >R:分类学等级解析与标准化脚本

R:分类学等级解析与标准化脚本

时间:2024-12-15 15:53:21浏览次数:4  
标签:脚本 标准化 library 等级 解析 分类学

rm(list = ls())
setwd("C:\\Users\\Administrator\\Desktop\\machine learning\\Network") #设置工作目录
library(dplyr)
library(tidyr)
library(readr)

# 读取文件
data <- readLines('1.txt')

# 定义分类等级的前缀和列名
prefixes <- c("k__", "p__", "c__", "o__", "f__", "g__", "s__")
levels <- c("Kingdom", "Phylum", "Class", "Order", "Family", "Genus", "Species")

# 拆分并填充缺失的分类
split_data <- lapply(data, function(line) {
  # 初始化分类向量
  classification <- setNames(rep("unclassified", length(levels)), levels)
  
  # 遍历每个前缀
  for(i in seq_along(prefixes)) {
    prefix <- prefixes[i]
    pattern <- paste0(prefix, "([^|]+)")
    matches <- regmatches(line, gregexpr(pattern, line))
    
    # 如果找到匹配项,则更新分类
    if(length(matches[[1]]) > 0) {
      name <- gsub(prefix, "", matches[[1]])
      classification[levels[i]] <- name
    }
  }
  
  return(c(line, classification))
})

# 将结果转换为数据框
result_df <- do.call(rbind, split_data)

# 添加列名
colnames(result_df) <- c("Original_Classification", levels)

# 转换为字符矩阵以便输出
result_matrix <- apply(result_df, 2, as.character)

# 输出到txt文件,包括列名
write.table(result_matrix, 'path_to_output_file.txt', quote = FALSE, sep = "\t", row.names = FALSE, col.names = TRUE)

 

标签:脚本,标准化,library,等级,解析,分类学
From: https://www.cnblogs.com/wzbzk/p/18608065

相关文章

  • 如何关闭Nginx的防恶意解析功能?
    关闭Nginx的防恶意解析功能非常简单,具体步骤如下:登录宝塔面板:打开浏览器,输入你的宝塔面板地址和端口,例如:http://你的服务器IP:8888,使用管理员账号和密码登录。进入环境设置:在左侧导航栏中,依次选择“环境设置”->“Nginx配置”。关闭防恶意解析功能:在Nginx配置......
  • 网站更新规划:策略与实践的深度解析
    在数字化时代,网站不仅是企业线上形象的窗口,更是与消费者互动、传递价值、促进业务增长的关键平台。随着技术的不断进步和用户需求的日益多样化,网站更新成为了保持竞争力、提升用户体验的必然选择。本文旨在深入探讨网站更新规划的策略与实践,为网站管理员和内容创作者提供一套......
  • 并发编程笔记三-ConditionObject源码深度解析
     一.ConditionObject概述        synchronized提供了wait和notify的方法实现线程在持有锁时,可以实现挂起,唤醒的操作。其实ReentrantLock也拥有这个功能,ReentrantLock提供了await和signal方法去实现类似wait和notify的功能。同样的,想执行await或者是signal就必须先持......
  • 洛谷B2061 整数的个数 解析
    题目描述给定 k(1<k<100)个正整数,其中每个数都是大于等于 1,小于等于 10 的数。写程序计算给定的 k 个正整数中,1,5和 10出现的次数。输入格式输入有两行:第一行包含一个正整数 k,第二行包含k 个正整数,每两个正整数用一个空格分开。输出格式输出有三行,第一行为 1 ......
  • 什么是泛域名?如何做泛域名解析?
    泛域名是一种特殊的互联网域名,它允许一个主域名下设置多个子域名,这些子域名可以指向同一个IP地址。泛域名通过通配符“*”来实现,例如*.example.com可以代表a.example.com、b.example.com等所有子域名。这种设置便于统一管理和访问多个子网站或页面,同时也有助于提升品牌曝光度和SEO......
  • 工作流审批功能全解析:提升流程效率的关键要素
    1.引言        在当今数字化时代,企业与组织的运营效率在很大程度上依赖于高效、精准的工作流审批系统。随着业务日益复杂且多样化,审批流程变得愈加细致和灵活。一个完善的工作流审批系统不仅能确保任务在组织内部有序流转、协调各方资源,还能实现科学且高效的决策,从而......
  • 10大关键技术解构:智能合同审查系统全景解析
    前言随着企业数字化转型的深入,合同管理在业务流程中的重要性愈加凸显。传统的人工审查合同方式不仅耗时耗力,还容易出现疏漏,尤其在复杂法律条款和跨部门协作的场景中,这一问题尤为明显。为了解决这一痛点,思通数科智能合同审查系统应运而生。基于人工智能和大数据分析的技术,这一系统......
  • 【条件随机场的学习算法】模型的对数似然函数 公式解析
    本文是将文章【条件随机场的学习算法】中的公式单独拿出来做一个详细的解析,便于初学者更好的理解。公式:L(w)......
  • 【条件随机场的学习算法】模型的对数似然函数L(w) 的展开形式 公式解析
    本文是将文章【条件随机场的学习算法】中的公式单独拿出来做一个详细的解析,便于初学者更好的理解。公式:L(......
  • Vue2 - 最新详细实现在线预览Excel文件(xls/xlsx)多种方案,解析打开excel电子表格支持
    前言如果您需要Vue3版本,请访问。在vue2|nuxt2项目开发中,详解实现预览excel表格功能,在浏览器中直接打开xls/xlsx文件并渲染效果,文件来源可以是在线url地址、前端调用api接口获取文件流(先下载)等,预览方式可以新开浏览器页签或者自定义弹框等方式,兼容任意高低版本浏......