r - 切片嵌套的 tibble
问题描述
有没有办法通过嵌套的 tibble 进行切片?
library(tidyverse)
foo <-
expand_grid(a = rnorm(100),
b = runif(100),
c = LETTERS[1:10]) %>%
group_by(c) %>%
nest()
slice(foo, 1:4)
c data
<chr> <list>
1 A <tibble [10,000 x 2]>
2 B <tibble [10,000 x 2]>
3 C <tibble [10,000 x 2]>
4 D <tibble [10,000 x 2]>
5 E <tibble [10,000 x 2]>
6 F <tibble [10,000 x 2]>
7 G <tibble [10,000 x 2]>
8 H <tibble [10,000 x 2]>
9 I <tibble [10,000 x 2]>
10 J <tibble [10,000 x 2]>
保留一切。如何保留特定部分foo
?例如我期望:
slice(foo, 1:6)
c data
<chr> <list>
1 A <tibble [10,000 x 2]>
2 B <tibble [10,000 x 2]>
3 C <tibble [10,000 x 2]>
4 D <tibble [10,000 x 2]>
5 E <tibble [10,000 x 2]>
6 F <tibble [10,000 x 2]>
解决方案
因为数据是分组的,切片是分别对每个组工作的,我们需要在切片之前取消分组:
foo %>%
ungroup() %>%
slice(2:4)
# # A tibble: 3 x 2
# c data
# <chr> <list>
# 1 B <tibble [10,000 x 2]>
# 2 C <tibble [10,000 x 2]>
# 3 D <tibble [10,000 x 2]>
或使用base [
:
foo[2:4, ]
推荐阅读
- python - 将 Flask 服务部署到 Azure
- python - 无法从 PyCharm python 控制台正确运行 Firefox (geckodriver)
- python - 使用python从其他列的均值和标准差的分布中创建一列随机数
- javascript - 如何在 JQuery 中使图像横向淡入(从左到右,反之亦然)?
- linux - 使用管道一次性完成 Tar 和 Rsync
- database - 为什么我们不总是使用最好的加密技术?
- google-app-engine - TaskQueue BulkAdd 需要较长时间才能完成
- scala - Scala 宏注释错误的解决方法
- c# - 无法更新 Sharepoint 站点的权限
- scala - 使用对象作为 AKKA 演员有什么危险?