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

如何将R语言table()输出转换为一致格式的矩阵或数据框

问题:将table()输出转换为格式一致的矩阵/数据框

给定R代码

df <- data.frame(Factor1 = factor(c(rep("A", 2), rep("B", 2), rep("C", 2))),
                 Factor2 = factor(LETTERS[12:7]))

table(df$Factor1, df$Factor2)

运行输出

G H I J K L
  A 0 0 0 0 1 1
  B 0 0 1 1 0 0
  C 1 1 0 0 0 0

解决方案

转换为矩阵

table()的返回对象本身属于table类,直接用as.matrix()就能得到格式完全匹配的矩阵,行列名、数值都和原输出一致:

# 先保存table结果
tab <- table(df$Factor1, df$Factor2)
# 转换为矩阵
mat <- as.matrix(tab)

# 查看结果
mat

转换为数据框

如果需要转换为数据框,推荐使用as.data.frame.matrix(),它会直接保留原table的行列结构:

df_result <- as.data.frame.matrix(tab)

# 查看结果
df_result

如果需要把行名(即Factor1的水平)作为单独一列保留,可以手动添加:

# 新增Factor1列,值为原数据框的行名
df_result_with_rowname <- cbind(Factor1 = rownames(df_result), df_result)
# 可选:移除默认的行号索引
rownames(df_result_with_rowname) <- NULL

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 21:32:03