【发布时间】:2017-05-17 22:36:09
【问题描述】:
我正在尝试根据变量值进行过滤,并且尝试了多种过滤器_、点和引号的组合,但均无济于事。
举个例子,我有一个
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))
我想过滤一个名为 boo 的数据框,它可能看起来像 迭代为
for (i in runlist) {
bop <- boo %>% filter( run == i )
str(boo)
}
我怀疑我会听说不使用 for 循环和 R,而是使用 group_by(run),但我将此数据发送到 igraph 并且需要进一步将数据集子集为边缘和权重,从而丢失分组变量,如
bop <- boo %>% filter( run == i ) %>% select( edge1, edge2, weights )
我将创建一个网络图并找出每次运行的密度和中心度值。
bing <- graph.data.frame(bop)
如何让条件过滤器中的i 解析为正确的索引?
【问题讨论】:
-
改用
for (i in unique(boo$run)) -
@Nate Day 哇,是的,这行得通。您能否向我解释为什么您的建议有效,而
runlist = unique(boo$run)和索引runlist无效?以及如何正确@您有空格的句柄?
标签: r filter dplyr standard-evaluation