【发布时间】:2018-05-01 16:10:54
【问题描述】:
如何以编程方式计算desired_output?
我的数据框的基本结构如下:
airline<-c(0,0,1,0,0,1)
city1<-c('a','a','a','b','b','c')
city2<-c('b','c','d','c','d','d')
desired_output<-c(0,1,1,0,0,1)
mktdf<-data.frame(airline, city1, city2, desired_output)
航空公司虚拟变量指示航空公司是否在城市 1 和城市 2 之间飞行。在没有的情况下,我想创建一个虚拟对象,表明航空公司仍然从 city1 和 city2 飞行(但不是在它们之间)。
例如,航空公司不在 a 和 b 之间飞行。然而,它确实在 a 和 d 之间飞行。另一方面,它从不从city b 起飞。因此desired_output =0 的第一行。
在第 2 行中,我们在 desired_output 中观察到 1。这是因为,虽然我们知道航空公司从 city a 起飞,但后来我们看到它也从 city 起飞(但同样,不是在它们之间)。
我很高兴分享我编写的任何尝试解决此问题的代码,尽管我完全没有成功,而且我认为这只会分散注意力。但是,总的来说,我尝试过使用dpylr、looping 和transform 函数。
【问题讨论】:
-
我认为您正在寻找“连接的组件”,可以在使用 igraph 包将数据作为图形读取后找到。 (每个直连都是“边”;每个城市都是“节点”。)示例:stackoverflow.com/q/30407769
-
谢谢@Frank,看来我需要一段时间才能掌握这一点,但感谢您的快速回复!
标签: r dataframe conditional