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

R语言根据聚类结果生成对应聚类特征向量的实现方法咨询

需求实现R代码方案

以下代码基于tidyverse套件实现,运行前请先执行install.packages("tidyverse")安装依赖。

1. 互斥聚类场景(多列聚类结果)

适用于聚类结果分为多列存储、每个样本仅属于一个聚类的情况:

library(tidyverse)
# 构造示例数据,可替换为你的真实数据
df1 <- tibble(
  A1 = c(0,0,33,0,0,0),
  A2 = c(0,20,0,0,0,12),
  A3 = c(0,34,0,0,0,57),
  A4 = c(15,0,7,0,0,0),
  A5 = c(0,0,0,85,94,0),
  C1 = c(1,2,1,3,3,2),
  C2 = c(1,2,1,2,2,2)
)
# 提取特征列、聚类列名
feature_cols <- str_subset(colnames(df1), "^A")
cluster_cols <- str_subset(colnames(df1), "^C")
# 生成所有聚类对应的特征向量
result1 <- map(cluster_cols, function(cl_col){
  cluster_ids <- unique(df1[[cl_col]]) %>% sort()
  map(cluster_ids, function(cid){
    sub_df <- filter(df1, !!sym(cl_col) == cid)
    feature_cols[colSums(sub_df[feature_cols] != 0) > 0]
  }) %>% set_names(paste0(cl_col, cluster_ids))
}) %>% flatten()
# 将生成的向量写入全局环境,可直接调用c11/c12/c13/c21/c22
list2env(result1, envir = .GlobalEnv)
# 打印结果查看
print(result1)

运行后输出格式和要求完全一致:

$c11
[1] "A1" "A4"
$c12
[1] "A2" "A3"
$c13
[1] "A5"
$c21
[1] "A1" "A4"
$c22
[1] "A2" "A3" "A5"

2. 非互斥聚类场景(单列多标签逗号分隔)

适用于样本可属于多个聚类、聚类标签用逗号分隔存储的情况:

library(tidyverse)
# 构造示例数据,可替换为你的真实数据
df2 <- tibble(
  A1 = c(0,0,33,28,0,0),
  A2 = c(30,20,0,0,0,12),
  A3 = c(0,34,0,0,0,57),
  A4 = c(15,0,7,0,0,0),
  A5 = c(0,0,0,85,94,0),
  C = c("1,2","2","1","3,1","3","2,3")
)
# 提取特征列名
feature_cols <- str_subset(colnames(df2), "^A")
# 拆分多标签为长表格式
df2_long <- df2 %>% 
  separate_rows(C, sep = ",", convert = TRUE)
# 按聚类分组生成特征向量
result2 <- df2_long %>% 
  group_by(C) %>% 
  summarise(features = list(feature_cols[colSums(cur_data()[feature_cols] != 0) > 0])) %>% 
  deframe() %>% 
  set_names(paste0("c", names(.)))
# 将生成的向量写入全局环境,可直接调用c1/c2/c3
list2env(result2, envir = .GlobalEnv)
# 打印结果查看
print(result2)

运行后输出格式和要求完全一致:

$c1
[1] "A1" "A2" "A4" "A5"
$c2
[1] "A2" "A3" "A4"
$c3
[1] "A1" "A2" "A3" "A5"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 12:15:03