R中的应急矩阵

Contingency Matrix in R

我正在尝试为调用者和被调用者之间的实例构建一个列联矩阵。我遇到问题是因为我的变量 caller_id 包含长度为 5 个数字的值;但是,我需要根据值是否以 1、2 或 3 开头来分隔这些值。例如,我的数据具有以下模式:

CALLER         CALLEE
12345            1
23456            1
35643            2

其中Caller的前缀和Callee的值可以是1、2或3,分别代表1代表白人,2代表黑人,3代表未知。然后我需要创建一个列联矩阵,例如:

              White Caller     Black Caller
White Callee    # of calls    # of calls
Black Callee    # of calls    # of calls
Unknown Callee  # of calls    # of calls

如果有人对我如何分离值和创建矩阵有任何建议,我们将不胜感激。提前谢谢你。

对于基础 R,您可以使用

with(df, table(CALLER = substr(CALLER, 0, 1), CALLEE))
#       CALLEE
# CALLER 1 2
#      1 1 0
#      2 1 0
#      3 0 1

其中 substr(df$CALLER, 0, 1)df$CALLER 中提取第一个数字(参见 ?substr)然后 table 给出偶然性 table.