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

R语言:选取多行生成新DataFrame及聚类簇变量组合查看方法

查看不同簇的变量组合 & 生成子DataFrame的方法

嘿,针对你的需求,我整理了两种实用的解决办法,直接上手就能用:

一、查看不同簇的变量组合

首先,咱们得把聚类结果和原DataFrame绑定到一起,这样才能对应到每个观测的簇归属:

# 假设你的原DataFrame名为df,将聚类结果作为新列加入
df$cluster <- cutree_hclust

接下来有两种常用方式查看各簇的变量情况:

  • 方式1:拆分出每个簇的独立DataFrame
    用split()函数可以直接把原数据按簇拆分,得到一个包含8个元素的列表,每个元素对应一个簇的所有观测:

    cluster_list <- split(df, df$cluster)
    # 查看第1簇的所有数据
    cluster_list[[1]]
    # 查看第3簇的前5行
    head(cluster_list[[3]], 5)
    
  • 方式2:统计各簇变量的汇总信息
    如果想快速对比各簇变量的差异(比如均值、标准差),用dplyr包的分组统计会很方便:

    library(dplyr)
    cluster_summary <- df %>%
      group_by(cluster) %>%
      summarise(across(everything(), list(mean = mean, sd = sd), na.rm = TRUE))
    print(cluster_summary)
    

    这样就能清晰看到每个簇中各个变量的集中趋势和离散程度啦。

二、选取若干行生成新DataFrame

根据不同的选取需求,有几种常见操作:

  • 按行号选取
    直接指定行的索引即可,比如选取第1、第100、第500行:

    new_df <- df[c(1, 100, 500), ]
    
  • 按簇(条件)选取
    比如想把第1簇和第2簇的所有观测单独拿出来:

    # base R写法
    new_df <- df[df$cluster %in% c(1, 2), ]
    # dplyr写法更直观
    new_df <- df %>% filter(cluster %in% c(1, 2))
    
  • 按行名选取
    如果你的DataFrame有自定义行名,也可以直接指定行名:

    new_df <- df[c("obs_101", "obs_205"), ]
    

小提示: 操作后可以用dim(new_df)或者head(new_df)检查新DataFrame的行数和内容是否符合预期~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 03:27:17