我正在尝试为呼叫者和被呼叫者之间的实例构造一个权变矩阵。我只是遇到问题,因为我的变量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
如果有人对我如何分离值和创建矩阵有任何建议,将不胜感激。预先谢谢你。
答案 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
给出列联表。