Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/82.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中的Riverplot包-边列名中存在错误_R_Sankey Diagram_Riverplot - Fatal编程技术网

R中的Riverplot包-边列名中存在错误

R中的Riverplot包-边列名中存在错误,r,sankey-diagram,riverplot,R,Sankey Diagram,Riverplot,我试图使用R中的Riverplot包制作一个Sankey图,但是我得到了一条关于边缘框架中列名的错误消息 我正在安装readr和riverplot软件包,然后执行以下操作: > my_data <- read_csv("~/RProjects/my_data.csv") > > edges = rep(my_data, col.names = c("N1","N2","Value")) > > nodes = data.frame(ID = unique(c(

我试图使用R中的Riverplot包制作一个Sankey图,但是我得到了一条关于边缘框架中列名的错误消息

我正在安装readr和riverplot软件包,然后执行以下操作:

> my_data <- read_csv("~/RProjects/my_data.csv")
>
> edges = rep(my_data, col.names = c("N1","N2","Value"))
>
> nodes = data.frame(ID = unique(c(edges$N1, edges$N2)))
>
> river <- makeRiver(nodes, edges)
>
> return(plot(river))
原始CSV已具有这些列标题。我不确定我做错了什么。我对R完全是个新手,所以如果我错过了显而易见的东西,请耐心等待

我的CSV文件上的dput如下所示:

structure(list(N1 = c("Cambridge", "Cambridge", "Cambridge", 
"Cambridge", "Cambridge", "South Cambs", "South Cambs", "South Cambs", 
"South Cambs", "South Cambs", "Rest of East", "Rest of East", 
"Rest of East", "Rest of East", "Rest of East", "Rest of UK", 
"Rest of UK", "Rest of UK", "Rest of UK", "Rest of UK", "Abroad", 
"Abroad", "Abroad", "Abroad", "Abroad"), N2 = c("Cambridge", 
"South Cambs", "Rest of East", "Rest of UK", "Abroad", "Cambridge", 
"South Cambs", "Rest of East", "Rest of UK", "Abroad", "Cambridge", 
"South Cambs", "Rest of East", "Rest of UK", "Abroad", "Cambridge", 
"South Cambs", "Rest of East", "Rest of UK", "Abroad", "Cambridge", 
"South Cambs", "Rest of East", "Rest of UK", "Abroad"), Value = c(106068L, 
1616L, 2779L, 13500L, 5670L, 2593L, 138263L, 2975L, 4742L, 1641L, 
2555L, 3433L, 0L, 0L, 0L, 6981L, 3802L, 0L, 0L, 0L, 5670L, 1641L, 
0L, 0L, 0L)), class = c("tbl_df", "tbl", "data.frame"), row.names = c(NA, 
-25L), .Names = c("N1", "N2", "Value"), spec = structure(list(
    cols = structure(list(N1 = structure(list(), class = c("collector_character", 
    "collector")), N2 = structure(list(), class = c("collector_character", 
    "collector")), Value = structure(list(), class = c("collector_integer", 
    "collector"))), .Names = c("N1", "N2", "Value")), default = structure(list(), class = c("collector_guess", 
    "collector"))), .Names = c("cols", "default"), class = "col_spec"))
str(边)给出:


我认为问题在于您遗漏了必需的
ID
列,从而混淆了命令

edges = rep(my_data, col.names = c("N1","N2","Value"))
edges    <- data.frame(edges)
edges$ID <- 1:25

nodes = data.frame(ID = unique(c(edges$N1, edges$N2)))

river <- makeRiver(nodes, edges) 

我认为问题在于您遗漏了必需的
ID
列,从而混淆了命令

edges = rep(my_data, col.names = c("N1","N2","Value"))
edges    <- data.frame(edges)
edges$ID <- 1:25

nodes = data.frame(ID = unique(c(edges$N1, edges$N2)))

river <- makeRiver(nodes, edges) 

非常感谢。这将向边添加第四列(ID)。但是当我执行makeRiver()行时,我在checkedges(edges,nodes$ID)中得到了
错误:边不能与节点具有相同的ID
。出于某种原因,它从edges中的新ID列中获取值。然后,我尝试设置节点帧的ID,方法是完整地指定每个节点,
nodes@String如果仍然存在问题,让我们开始一个关于该错误的新问题。如果你开始一个新问题,把链接放在这里,这样我就不会错过它。我会在早上(大约9小时后)再查。太好了,非常感谢,你已经解决了问题中的问题。我认为随后的“复制边”问题是因为我还没有为节点定义x和y。我正在进行另一次尝试并取得进展。如果我再次被困在某个问题上,将作为单独的问题发布。谢谢。这将向边添加第四列(ID)。但是当我执行makeRiver()行时,我在checkedges(edges,nodes$ID)中得到了
错误:边不能与节点具有相同的ID
。出于某种原因,它从edges中的新ID列中获取值。然后,我尝试设置节点帧的ID,方法是完整地指定每个节点,
nodes@String如果仍然存在问题,让我们开始一个关于该错误的新问题。如果你开始一个新问题,把链接放在这里,这样我就不会错过它。我会在早上(大约9小时后)再查。太好了,非常感谢,你已经解决了问题中的问题。我认为随后的“复制边”问题是因为我还没有为节点定义x和y。我正在进行另一次尝试并取得进展。如果我再次被困在某个问题上,将作为单独的问题发布。
edges = rep(my_data, col.names = c("N1","N2","Value"))
edges    <- data.frame(edges)
edges$ID <- 1:25

nodes = data.frame(ID = unique(c(edges$N1, edges$N2)))

river <- makeRiver(nodes, edges) 
Warning message:
In checkedges(edges, nodes$ID) :
  duplicated edge information, removing 10 edges