条件筛选器中的R dplyr resolve变量

条件筛选器中的R dplyr resolve变量,r,filter,dplyr,standard-evaluation,R,Filter,Dplyr,Standard Evaluation,我试图根据一个变量值进行筛选,并尝试了筛选、点和引号的多种组合,但均无效 举个例子,我有一个 runlist = c(1, 2, 3, 4, 5) 还有一个数据帧嘘声 run <- rep(seq(5), 3) edge1 <- sample(20, 15) edge2 <- sample(20, 15) weights <- sample(50, 15) boo <- as.data.frame(cbind(run, edge1, edge2, weights

我试图根据一个变量值进行筛选,并尝试了筛选、点和引号的多种组合,但均无效

举个例子,我有一个

runlist = c(1, 2, 3, 4, 5) 
还有一个数据帧嘘声

run <- rep(seq(5), 3)
edge1 <- sample(20, 15)
edge2 <- sample(20, 15)
weights <- sample(50, 15)
boo <- as.data.frame(cbind(run, edge1, edge2, weights))
我将创建一个网络图,并找到每次运行的密度和中心度值

bing <- graph.data.frame(bop)
bing我的答案不是“在条件过滤器中解析变量”,而是有一种更简单的方法来完成您想要做的事情

其主要思想是基于变量
run
拆分数据帧,并将一个函数映射到每个片段上。此函数获取一段数据帧并输出一个IGRAPHE

下面的代码完成了上述操作,将图形列表存储在
graph
列中。(这是一个列表列,请参阅下页的详细信息)

我的答案不是“在条件过滤器中解析变量”,而是有一种更简单的方法来完成您想要做的事情

其主要思想是基于变量
run
拆分数据帧,并将一个函数映射到每个片段上。此函数获取一段数据帧并输出一个IGRAPHE

下面的代码完成了上述操作,将图形列表存储在
graph
列中。(这是一个列表列,请参阅下页的详细信息)


用于(唯一(boo$run)中的i)
instead@Nate哇,是的,这很有效。你能解释一下为什么你的建议有效,而
runlist=unique(boo$run)
runlist
上的索引无效吗?我怎样才能正确地@your handle,它有一个空格?使用
for(I in unique(boo$run))
instead@Nate哇,是的,这很有效。你能解释一下为什么你的建议有效,而
runlist=unique(boo$run)
runlist
上的索引无效吗?我怎么才能正确地@your handle哪个有空格?Intruiging。我会尝试一下,看看是否能得到我想要的中心度和密度统计数据。我喜欢你将选择插入到图形调用中,所以我得到了图的列表列,但是我没有成功地单独使用这些图来获得密度和中心度统计数据。我甚至反映了你的建议,并尝试了
PDensities%mutate(PDensities=map(数据,函数(x)graph.density(x))
,但没有收到图形对象错误消息。还感谢您发送文档链接,非常有趣,但它推荐的扫帚似乎不会整理网络图。例如,如何获得每个图的graph.density?我喜欢使用这种方法。每个图形都存储为数据框中的一个单元格。您可以像往常一样,使用my_dataframe[2,3]
提取第二行和第三列中的图形。可能有一种更有效的映射操作,它将提取函数映射到列表列的每个单元格。但最基本的想法是,你可以像任何列一样从列表列中提取内容。我在管道中添加了一个操作,可以接收图形并输出密度。这很有效,而且速度很快。非常感谢,我在用这个。我会尝试一下,看看是否能得到我想要的中心度和密度统计数据。我喜欢你将选择插入到图形调用中,所以我得到了图的列表列,但是我没有成功地单独使用这些图来获得密度和中心度统计数据。我甚至反映了你的建议,并尝试了
PDensities%mutate(PDensities=map(数据,函数(x)graph.density(x))
,但没有收到图形对象错误消息。还感谢您发送文档链接,非常有趣,但它推荐的扫帚似乎不会整理网络图。例如,如何获得每个图的graph.density?我喜欢使用这种方法。每个图形都存储为数据框中的一个单元格。您可以像往常一样,使用my_dataframe[2,3]提取第二行和第三列中的图形。可能有一种更有效的映射操作,它将提取函数映射到列表列的每个单元格。但最基本的想法是,你可以像任何列一样从列表列中提取内容。我在管道中添加了一个操作,可以接收图形并输出密度。这很有效,而且速度很快。非常感谢,我正在用这个。
bop <- boo %>% filter( run == i ) %>% select( edge1, edge2, weights )
bing <- graph.data.frame(bop)
boo %>%
  group_by(run) %>%
  nest() %>%
  mutate(graph = map(data, function(x) graph.data.frame(x %>% select(edge1, edge2, weights)))) %>%
  mutate(density = map(graph, function(x) graph.density(x))