我有一个数据表,其格式代表了许多关系类别的国家之间的关系强度:
Country1 Country2 Value Category
A A 4 1
A B 2 1
A C 9 1
B A 3 2
B D 4 1
C A 2 2
D C 7 2
...
Run Code Online (Sandbox Code Playgroud)
现在我想总结每个类别的所有相互关系(例如AB和BA; DC和CD等......)(AB和BA需要"合并").
什么可以是一个简洁和"非常R"的解决方案呢?有没有现成的功能可以做到这一点?
现在,我已经为"Country1"和"Country2"列设置了一个键,但是没有找到我接下来要匹配相应行的内容.
谢谢你的任何线索.
使用pmin
和pmax
..
require(data.table) # v1.9.6
dt = fread("Country1 Country2 Value Category
A A 4 1
A B 2 1
A C 9 1
B A 3 2
B D 4 1
C A 2 2
D C 7 2")
dt[, .(total = sum(Value)),
by=.(Country1 = pmin(Country1, Country2),
Country2 = pmax(Country1, Country2))]
# Country1 Country2 total
# 1: A A 4
# 2: A B 5
# 3: A C 11
# 4: B D 4
# 5: C D 7
Run Code Online (Sandbox Code Playgroud)
如果你想要这个Category
,只需添加它by
.
归档时间: |
|
查看次数: |
780 次 |
最近记录: |