Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/81.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 - Fatal编程技术网

在r中列出相关变量

在r中列出相关变量,r,R,我有两列相关变量。我想把它们合并成一个列表。例如,如果数据帧如下所示 A B B C D E 这表明A与B相关,B与C相关,等等 然后,我希望新列表包含: A, B, C D, E 任何帮助都将不胜感激。理想情况下,使用R。谢谢。使用诸如igraph之类的软件包可能会更容易,但这里有一种在基本R中实现的方法 df <- data.frame(X = c("A","B","D"), Y = c("B","C","E"), stringsAsFactors = FALSE

我有两列相关变量。我想把它们合并成一个列表。例如,如果数据帧如下所示

A    B
B    C
D    E
这表明A与B相关,B与C相关,等等

然后,我希望新列表包含:

A, B, C
D, E

任何帮助都将不胜感激。理想情况下,使用R。谢谢。

使用诸如
igraph
之类的软件包可能会更容易,但这里有一种在基本R中实现的方法

df <- data.frame(X = c("A","B","D"), Y = c("B","C","E"), stringsAsFactors = FALSE)

nodes <- data.frame(node = unique(c(df$X, df$Y)), 
                    stringsAsFactors = FALSE)          #set of all unique values

nodes$group <- 1:nrow(nodes)                           #start with each in its own group

for(i in seq_len(nrow(df))){                           #loop through df
  rowvalues <- unlist(df[i, ])                         #linked pair in row i
  nodes$group[nodes$node %in% rowvalues] <- min(nodes$group[nodes$node %in% rowvalues])
                                                       #set to min group for linked pair
}

#end result is nodes$group containing unique values for each linked group

nodes
  node group
1    A     1
2    B     1
3    D     3
4    C     1
5    E     3

#groups can be extracted as a list with...

split(nodes$node, nodes$group)

$`1`
[1] "A" "B" "C"

$`3`
[1] "D" "E"

df看起来需要
igraph
您的数据框只有一行和6列吗?如果是,则使用
unique(df)
。如果我误解了你的问题,请澄清和/或提供更多信息。