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

如何用R单行代码实现含M与y的b1和b2交叉表?

问题:用R语言单行代码实现指定交叉制表需求

原始数据集

y b1 b2  M
1  143  1  1  B
2  152  2  1  D
3  199  3  1  A
4  155  4  1  C
5  161  1  2  D
6  166  2  2  B
7  198  3  2  C
8  195  4  2  A
9  193  1  3  A
10 154  2  3  C
11 151  3  3  B
12 150  4  3  D
13 160  1  4  C
14 176  2  4  A
15 159  3  4  D
16 120  4  4  B

需求说明

按b1和b2做交叉制表,每个单元格要包含M和y的组合,预期效果如下:

b2
         1       2      3      4
    1  B 143   D 161  A 193  C 160  
b1  2  D 152   B 166  C 154  A 176
    3  A 199   C 198  B 151  D 159
    4  C 155   A 195  D 150  B 120

解决方案

当然可以用单行R代码实现,这里提供两种方案:

方案1:依赖reshape2包(简洁直观)

先确保安装了reshape2包,然后运行:

library(reshape2); dcast(df, b1 ~ b2, value.var = c("M", "y"), fun.aggregate = function(x) paste(x[1], x[2]))

方案2:基础R实现(无需额外包)

直接用tapply函数就能搞定:

with(df, tapply(paste(M, y), list(b1, b2), identity))

两种方案都会生成符合需求的交叉表,单元格内容为M和y的组合字符串,和示例格式一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 23:35:14