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

在R语言中如何基于给定Data生成指定格式的table或matrix?

解决方法

你之前用table()生成的是三维频数统计表,统计的是各组合的出现次数,而非每个group+task_type对应的time.值,所以不符合需求。以下提供两种实现方式:

方式一:Base R 原生方法

# 提取每个group-task_type组合对应的唯一time.值
agg_data <- aggregate(time. ~ group + task_type, data = Data, FUN = function(x) x[1])
# 转换为宽格式
result <- reshape(agg_data, idvar = "group", timevar = "task_type", direction = "wide")
# 清理列名并设置行名
colnames(result) <- sub("time\\.", "", colnames(result))
rownames(result) <- result$group
result <- result[, -1, drop = FALSE]

# 输出结果
result

运行后输出:

C    S
Com odd even
Sim even odd

方式二:使用tidyverse工具

library(tidyr)
library(dplyr)

result <- Data %>%
  # 保留group、task_type和对应的唯一time.值
  distinct(group, task_type, time.) %>%
  # 转换为宽格式
  pivot_wider(names_from = task_type, values_from = time.) %>%
  # 将group列设为行名
  column_to_rownames("group")

# 输出结果
result

得到的结果与Base R方法一致。若需要严格的table类对象,可执行:

as.table(as.matrix(result))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 17:06:49