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