首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对要定向的交易数据进行编码

对要定向的交易数据进行编码
EN

Stack Overflow用户
提问于 2019-05-18 21:11:26
回答 1查看 21关注 0票数 1

我想在R中创建非洲和世界之间的贸易地图(导入数据)。基本上,我只有4个变量,如下表所示(大约14.000个观察值)。import1和Import2是两个国家的贸易,其中flow1是从import2进口的Import1,flow2是从import1进口的import2。

代码语言:javascript
复制
import1 import2 flow1 flow2

Algeria Tunisia   113.96    130.01

Algeria Libya     1.966 11.19

Algeria Sudan     0.0165   0

我不明白的是如何让R从import2 --> import1将flow1读取为方向,并将flow2读取为交易方向import1 --> import2。我只是在寻找一些关于如何在R中编写这部分代码的指导,因为到目前为止我还没有能够在网上找到任何有帮助的东西。谢谢!

我已经用这4个变量创建了一个数据帧,但它只使用了import1和import2,并认为import1-->import2是连接。

代码语言:javascript
复制
df1 <- Trade_Data %>% 
       filter(year == 2003) %>% 
       select(importer1, importer2, flow1, flow2)
df1 <-df1[!(df1$flow1== 0 & df1$flow2==0),]
View(df1)
g1 <- graph.data.frame(df1, directed = T)
g1

我希望输出是阿尔及利亚< -->突尼斯队(例如),但输出实际上是阿尔及利亚-->突尼斯队。

EN

回答 1

Stack Overflow用户

发布于 2019-05-18 22:05:24

以下是graph.data.frame帮助文件中的示例。

代码语言:javascript
复制
actors <- data.frame(name=c("Alice", "Bob", "Cecil", "David",
                            "Esmeralda"),
                     age=c(48,33,45,34,21),
                     gender=c("F","M","F","M","F"))
relations <- data.frame(from=c("Bob", "Cecil", "Cecil", "David",
                               "David", "Esmeralda"),
                        to=c("Alice", "Bob", "Alice", "Alice", "Bob", "Alice"),
                        same.dept=c(FALSE,FALSE,TRUE,FALSE,FALSE,TRUE),
                        friendship=c(4,5,5,2,1,1), advice=c(4,5,5,4,2,3))
g <- graph_from_data_frame(relations, directed=TRUE, vertices=actors)

产生这些边缘

代码语言:javascript
复制
+ edges from 3d02353 (vertex names):
[1] Bob      ->Alice Cecil    ->Bob   Cecil    ->Alice David    ->Alice David    ->Bob  
[6] Esmeralda->Alice

正如您所看到的,在您的代码中,您没有创建顶点数组,但是您所做的是创建了两个关系。

特别是在有向图中,如果您真的想知道关系是以相反的方式进行的,就不能采取将所有数据组合到同一行的捷径。

我建议你做的是将每个有向边(从,到)作为单独的行移动到长格式,然后将流放在具有适当方向的行中。

我还建议使用更具描述性的列名,如"exporter“、"importer”或"from“to”,因为import1和import2实际上并没有提供足够的自包含信息来了解它们是什么。

或者,如果您真的想将其表示为与阿尔及利亚(import_from,export_to)的两种不同关系,那么您也可以这样做。但在这种情况下,它将始终显示阿尔及利亚--> x关系

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56199274

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档