我有一个看起来像这样的数据框:
id fromuserid touserid from_country to_country length
1 1 54525953 47195889 US US 2
2 2 54525953 54361607 US US 1
3 3 54525953 53571081 US US 2
4 4 41943048 55379244 US US 1
5 5 47185938 53140304 US PR 1
6 6 47185938 54121387 US US 1
7 7 54525974 50928645 GB GB 1
8 8 54525974 53495302 GB GB 1
9 9 51380247 45214216 SG SG 2
10 10 51380247 43972484 SG US 2
每行描述从一个用户发送给另一个用户的消息数量(长度)。
我想做的是创建每个国家之间发送的消息的可视化(通过 D3 中的和弦图)。
有近200个国家。我使用函数 dcast 如下:
countries <- dcast(chats,from_country ~ to_country,drop=FALSE,fill=0)
当我有一个较小的数据集和较少的变量时,这对我有用,但是这个数据集超过 3M 行,并且不容易调试,可以这么说。
无论如何,我现在得到的是一个不是正方形的矩阵,我不知道为什么不。我期望得到的本质上是一个矩阵,其中(i,j)th
单元格代表从country i
to发送的消息country j
。我最终得到的结果与此非常接近,但显然缺少一些行和列,这很容易发现,因为 US->US 消息显示移动了一行或一列。
所以这是我的问题。有什么我正在做的事情显然是错误的吗?如果没有,我应该在数据集中寻找一些“奇怪”的东西来解决这个问题吗?