R 基于其他三个变量创建二进制文件

R 基于其他三个变量创建二进制文件,r,dataframe,conditional,R,Dataframe,Conditional,如何以编程方式计算所需的输出 我的数据框的基本结构如下: 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) airline作为如何使用igraph获得所需输

如何以编程方式计算所需的输出

我的数据框的基本结构如下:

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)

airline作为如何使用igraph获得所需输出的模板,以下是一些代码:

库(igraph)
航空公司[[1]]
#>[1]是的
#> 
#> [[2]]
#>[1]错误

在这里,我们看到我们找到的第一个子图就是我们想要的(如果您有很多组件,这可能很重要。另一种方法是使用最大的组件)。

我认为您正在寻找“连接的组件”,在使用IGRAPHE包将数据以图形形式读入后可以找到它。(每个直接连接都是一个“边缘”;每个城市都是一个“节点”。)一个例子:谢谢@Frank,看起来我需要一段时间来处理这个问题,但我感谢你的快速回复!对于我所需要的东西来说,这似乎有点复杂,但获得视觉效果真的很酷,谢谢!
a=paste0(city1,city2)

b=combn(unlist(strsplit(a[!!(airline)],"")),2,paste0,collapse="")

a%in%b+0L
[1] 0 1 1 0 0 1


mktdf$desired1=a%in%b+0L
> mktdf
  airline city1 city2 desired_output desired1
1       0     a     b              0        0
2       0     a     c              1        1
3       1     a     d              1        1
4       0     b     c              0        0
5       0     b     d              0        0
6       1     c     d              1        1