Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
存储和更新R中观测值之间的对称多对多关系_R_Database_Sqlite_Dataframe_Relationship - Fatal编程技术网

存储和更新R中观测值之间的对称多对多关系

存储和更新R中观测值之间的对称多对多关系,r,database,sqlite,dataframe,relationship,R,Database,Sqlite,Dataframe,Relationship,我有一个闪亮的应用程序,我正在使用它来查看和管理一些包含大量相关观察结果的数据。由于原始来源的技术限制,每个观察最初仅与另一个观察相关联,通过将事物链接在一起形成更大的组(a与B相关,B与C相关,C与B相关) 下面是一个简化的示例,不包括闪亮的GUI: #How the data comes from the original source original_data<-tribble( ~observation, ~related_to, "A",

我有一个闪亮的应用程序,我正在使用它来查看和管理一些包含大量相关观察结果的数据。由于原始来源的技术限制,每个观察最初仅与另一个观察相关联,通过将事物链接在一起形成更大的组(a与B相关,B与C相关,C与B相关)

下面是一个简化的示例,不包括闪亮的GUI:

#How the data comes from the original source
original_data<-tribble(
  ~observation,         ~related_to,
    "A",                     "B",
    "B",                     "C",
    "C",                     "E",
    "D",                     NA,
    "E",                     "D"
)


#After I go through by hand and tally up related cases
my_handtyped_data<-tribble(
  ~observation,       ~related_to,
  "A",                "B,C,D,E",
  "B",                "A,C,D,E",
  "C",                "A,B,D,E",
  "D",                "A,B,C,E",
  "E",                "A,B,C,D"
#数据如何来自原始来源
原始数据我稍微修改了您的数据(引入了节点'Q',所以我们得到了两组nof节点…)

使用
igraph
[package],您可以轻松获得彼此相关的节点组

**sample data**
original_data<-tribble(
  ~observation,         ~related_to,
  "A",                     "Q",       #  <-- !! 
  "B",                     "C",
  "C",                     "E",
  "D",                     NA,
  "E",                     "D"
)

library( tibble )
library( igraph )

#get df of nodes
nodes <- tibble( name = unique( na.omit( stack( original_data )$values ) ) ) 
#create list of edges
edges <- original_data[ complete.cases( original_data ), ]
#build igraph
g <- graph_from_data_frame(d = edges, vertices = nodes, directed = FALSE)

这就是为什么我问,这完全没有必要做任何额外的事情。我曾在graph数据库中研究过这一点,但出于某种原因,当我试图查找R软件包时,igraph从未出现过。自从google“改进”了他们的算法之后。。。
**sample data**
original_data<-tribble(
  ~observation,         ~related_to,
  "A",                     "Q",       #  <-- !! 
  "B",                     "C",
  "C",                     "E",
  "D",                     NA,
  "E",                     "D"
)

library( tibble )
library( igraph )

#get df of nodes
nodes <- tibble( name = unique( na.omit( stack( original_data )$values ) ) ) 
#create list of edges
edges <- original_data[ complete.cases( original_data ), ]
#build igraph
g <- graph_from_data_frame(d = edges, vertices = nodes, directed = FALSE)
#get groups of nodes
groups(components(g) )

# $`1`
# [1] "A" "Q"
# 
# $`2`
# [1] "B" "C" "D" "E"