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

寻求R中类似Matlab crosstab函数的交叉表实现方法

R中实现Matlab crosstab功能的方法

你可以用R里的基础函数轻松实现Matlab crosstab的交叉计数功能,以下是两种常用方法:

方法1:使用table()函数

这是最直接的方式,table()函数默认就是对两个变量的交叉组合进行频数统计:

# 定义示例向量
x <- c(1, 1, 2, 3, 1)
y <- c(1, 2, 5, 3, 1)

# 生成交叉表
cross_tab <- table(x, y)
print(cross_tab)

输出结果:

y
x   1 2 3 5
  1 2 1 0 0
  2 0 0 0 1
  3 0 0 1 0

这个结果和你给出的Matlab crosstab(x,y)输出完全对应,行是x的唯一值,列是y的唯一值,单元格是对应组合的出现次数。

方法2:使用xtabs()函数(修正你的用法)

你之前用xtabs(x + y)是错误的,因为这个写法是计算每个交叉组中x+y的求和值,而非频数。正确的用法是用公式语法,左边省略时默认统计频数:

cross_tab_xtabs <- xtabs(~ x + y)
print(cross_tab_xtabs)

输出和table()的结果一致,如果你需要将结果转换为纯数值矩阵格式(更贴近Matlab的输出形式),可以用as.matrix(cross_tab_xtabs)。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 20:02:04