R

时间:2018-10-28 23:38:42

标签: r matrix contingency

我正在尝试为呼叫者和被呼叫者之间的实例构造一个权变矩阵。我只是遇到问题,因为我的变量caller_id包含长度为5个数字的值;但是,我需要根据它们以1、2或3开头的值进行分隔。例如,我的数据具有以下格式:

CALLER         CALLEE
12345            1
23456            1
35643            2

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

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

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

1 个答案:

答案 0 :(得分:1)

您可以使用底数为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给出列联表。