R 子集data.table来表示对象的连接

R 子集data.table来表示对象的连接,r,join,merge,data.table,aggregate,R,Join,Merge,Data.table,Aggregate,给出了一个data.table,表示6个对象之间的关系: # create sampla data.table x1 <- c(1,1,1,2,2,2,3,3,3,4,5,6) x2 <- c(1,2,3,1,2,3,1,2,3,4,6,5) dt <- data.table(x1, x2) 对象4与其他对象没有连接。 对象1、2和3以及对象5和6已连接 现在,应该创建一个新列,其中所有连接的对象都具有相同的编号(ID) 结果data.table应如下所示: x3 <-

给出了一个data.table,表示6个对象之间的关系:

# create sampla data.table
x1 <- c(1,1,1,2,2,2,3,3,3,4,5,6)
x2 <- c(1,2,3,1,2,3,1,2,3,4,6,5)
dt <- data.table(x1, x2)
对象4与其他对象没有连接。 对象1、2和3以及对象5和6已连接

现在,应该创建一个新列,其中所有连接的对象都具有相同的编号(ID)

结果data.table应如下所示:

x3 <- c(1,1,1,1,1,1,1,1,1,2,3,3)
dt.res <- data.table(dt, x3)

x3
x1
x1您可以在StackOverflow中搜索igraph cluster。这篇文章的标题可能不太清楚,也不适合这个问题。如果有人想编辑它,可能会更容易找到。请看,您可以在StackOverflow中搜索igraph cluster。这篇文章的标题可能不太清楚,也不适合这个问题。如果有人想编辑它,可能更容易找到。请参阅
x3 <- c(1,1,1,1,1,1,1,1,1,2,3,3)
dt.res <- data.table(dt, x3)
x1 <- c(1,1,1,2,2,2,3,3,3,4,5,6)
x2 <- c(1,2,3,1,2,3,1,2,3,4,6,5)
dt <- data.frame(x1, x2)

dt$x3=dt$x1
dt
for(i in 1:nrow(dt)){
  if(dt$x3[i]!=dt$x2[i]){
    dt$x3[dt$x3==dt$x2[i]]=dt$x3[i]
  }
}
setDT(dt)[, id := .GRP, by=x3]
dt