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

如何用R函数去除行列生成对称方阵?批量处理Excel表方案

批量生成对称网络矩阵及Excel工作表批量处理方案

一、单个非对称矩阵的清理方法

针对存在全NA列和多余行的非对称网络矩阵,可通过筛选有效列、匹配对应行数的方式生成对称矩阵。以下是具体实现代码:

清理函数实现

# 定义清理非对称矩阵的函数
clean_matrix <- function(df) {
  # 筛选出非全NA的Sender列(排除第一列Receiver)
  valid_sender_cols <- colSums(is.na(df[, -1])) != nrow(df)
  # 保留Receiver列和有效Sender列
  temp_df <- df[, c(TRUE, valid_sender_cols)]
  # 提取与有效Sender列数量匹配的Receiver行,生成对称矩阵
  clean_df <- temp_df[1:length(valid_sender_cols[valid_sender_cols]), ]
  return(clean_df)
}

测试示例数据

# 示例原始非对称矩阵
df <- data.frame(
  Receiver = c("Receiver1", "Receiver2","Receiver3", "Receiver4",
              "Receiver5", "Receiver6","Receiver7", "Receiver8",
              "Receiver9", "Receiver10"),
  Sender1 = c(0,1,0,0,0,1,0,0,0,0),
  Sender2 = c(0,0,0,1,0,0,0,0,0,0),
  Sender3 = c(0,0,0,0,0,0,0,0,0,0),
  Sender4 = c(0,1,0,0,0,0,1,0,0,0),
  Sender5 = c(1,0,1,0,0,1,0,0,0,0),
  Sender6 = c(0,1,0,0,0,0,1,0,0,0),
  Sender7 = c(0,0,1,0,1,0,0,0,0,0),
  Sender8 = c(NA,NA,NA,NA,NA,NA,NA,NA,NA,NA),
  Sender9 = c(NA,NA,NA,NA,NA,NA,NA,NA,NA,NA),
  Sender10 = c(NA,NA,NA,NA,NA,NA,NA,NA,NA,NA)
)

# 生成对称矩阵
df_clean <- clean_matrix(df)
print(df_clean)

运行后将得到符合预期的对称矩阵df_clean。


二、批量处理Excel中的所有工作表

针对包含200个独立工作表的Excel文件,可通过循环实现批量读取、清理,并可导出清理后的结果。

批量处理代码

# 加载所需包(若未安装需先运行install.packages(c("readxl", "writexl")))
library(readxl)
library(writexl)

# 设置Excel文件路径,请替换为你的实际路径
excel_file <- "你的网络矩阵文件.xlsx"

# 获取所有工作表名称
all_sheets <- excel_sheets(excel_file)

# 创建空列表存储所有清理后的矩阵
cleaned_results <- list()

# 循环处理每个工作表
for (sheet_name in all_sheets) {
  # 读取当前工作表数据
  raw_data <- read_excel(excel_file, sheet = sheet_name)
  # 调用清理函数处理
  cleaned_data <- clean_matrix(raw_data)
  # 将结果存入列表,以工作表名称为索引
  cleaned_results[[sheet_name]] <- cleaned_data
}

# 可选:将清理后的所有矩阵导出到新Excel文件,每个工作表对应原名称
write_xlsx(cleaned_results, path = "清理后的对称网络矩阵.xlsx")

注意事项

  • 确保Excel文件中每个工作表的结构与示例数据一致(第一列为Receiver,后续列为Sender开头的列)
  • 若工作表结构有差异,可根据实际情况调整clean_matrix函数的判断逻辑

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 21:37:41