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

如何在R中访问table()生成的多维列联表维度并拆分表格

处理R中多维列联表的维度访问与拆分

理解table()生成的结构

table()函数生成的是多维数组,而非多个独立表格。tab[1]只是提取数组中的第一个频数元素,而非某个维度的表格。以下是具体的访问和拆分方法:


1. 访问维度的水平值

要查看各维度的名称或对应水平,使用dimnames():

  • 查看所有维度名称:
    names(dimnames(tab))
    
  • 提取指定维度的所有水平(比如提取"Closest Defender Distance"的水平):
    dimnames(tab)$"Closest Defender Distance"
    

2. 提取指定维度组合的独立表格

通过索引固定其他维度,可以提取任意维度组合的表格:

  • 示例1:提取Zone和Quarter的交叉表,固定Closest Defender Distance为第1个水平、Touch Time为第1个水平、Off Dribble为第1个水平:
    tab[,,1,,1]
    
  • 示例2:用维度名称索引更直观(比如提取Zone为"Restricted Area"时,所有Closest Defender Distance和Touch Time的交叉表):
    tab["Restricted Area", , , , ]
    

3. 转换为长格式后拆分出独立表格

先将多维表转为数据框,再按需拆分:

  1. 转换为包含所有维度和频数的长格式数据框:
    tab_df <- as.data.frame(tab)
    
  2. 按指定维度拆分(比如按Quarter拆分,每个季度对应一个数据框):
    tab_split <- split(tab_df, tab_df$Quarter)
    
  3. 将拆分后的每个数据框转回表格(比如每个季度下Zone和Closest Defender Distance的交叉表):
    lapply(tab_split, function(df) table(df$Zone, df$`Closest Defender Distance`))
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 19:07:38