r - R中数据框的子集
问题描述
我从名为节点的数据框中采样了“n”行:
nodes <- structure(list(node_number = 1:50,
x = c(2L, 80L, 36L, 57L, 33L, 76L, 77L, 94L,
89L, 59L, 39L, 87L, 44L, 2L, 19L, 5L,
58L, 14L, 43L, 87L, 11L, 31L, 51L, 55L,
84L, 12L, 53L, 53L, 33L, 69L, 43L, 10L,
8L, 3L, 96L, 6L, 59L, 66L, 22L, 75L, 4L,
41L, 92L, 12L, 60L, 35L, 38L, 9L, 54L, 1L),
y = c(62L, 25L, 88L, 23L, 17L, 43L, 85L, 6L, 11L,
72L, 82L, 24L, 76L, 83L, 43L, 27L, 72L, 50L,
18L, 7L, 56L, 16L, 94L, 13L, 57L, 2L, 33L, 10L,
32L, 67L, 5L, 75L, 26L, 1L, 22L, 48L, 22L, 69L,
50L, 21L, 81L, 97L, 34L, 64L, 84L, 100L, 2L, 9L, 59L, 58L),
node_demand = c(3L, 14L, 1L, 14L, 19L, 2L, 14L, 6L,
7L, 6L, 10L, 18L, 3L, 6L, 20L, 4L,
14L, 11L, 19L, 15L, 15L, 4L, 13L,
13L, 5L, 16L, 3L, 7L, 14L, 17L,
3L, 3L, 12L, 14L, 20L, 13L, 10L,
9L, 6L, 18L, 7L, 20L, 9L, 1L, 8L,
5L, 1L, 7L, 9L, 2L)),
.Names = c("node_number", "x", "y", "node_demand"),
class = "data.frame", row.names = c(NA, -50L))
示例我使用此代码:
hubs <- nodes[sample(1:total_nodes, hubs_required, replace = FALSE),]
哪个返回:
node_number x y node_demand
33 33 8 26 12
14 14 2 83 6
42 42 41 97 20
13 13 44 76 3
10 10 59 72 6
我想返回所有尚未选择的行,以便我可以对它们执行一系列计算。
我认为使用类似的东西data[-sample,]
会起作用,但我收到以下错误
Error in xj[i] : invalid subscript type 'list'.
有谁知道我可以得到这些值吗?
解决方案
保留选定的索引列表会更容易。类似的东西
hubs <- nodes[keep <- sample(1:total_nodes, hubs_required, replace = FALSE),]
other_hubs <- nodes[-keep, ]
否则,如果您的数据有某种键/ID,您可以执行类似的操作
other_hubs <- nodes[nodes%node_number %in% hubs$node_number, ]
或dplyr
,这可以是反连接
nodes %>% anti_join(hubs, by="node_number")
推荐阅读
- sql - 对 Eloquent 的困难查询
- apache-spark - 火花数据框:爆炸列表列
- excel - 在 Excel 中使用 VBA 从组用户获取/检索 Active Directory SamAccountName
- corda - 在 Corda `devMode` 中,创建或更新 CorDapp 后是否必须重新运行引导程序
- android - jsonRequest 延迟
- c# - 在这种情况下,我如何在没有重复的情况下显示结果?:)
- javascript - 在圆圈内居中文本和淡入淡出切换不起作用
- scala - Scala 的 VSTS 代码覆盖率
- r - 当我尝试在特殊网格上绘制点时,为什么 ggmap plot 说只有缺失值?
- javafx - 记录 TestFX 的 UI 元素