我有一些类似于下面的iris
数据集的数据。我正在尝试基于两列(group_by(Species, years)
)嵌套数据。我将数据放入名为data
的小标题中。看起来像这样:
# A tibble: 15 x 3
Species years data
<fct> <int> <list>
1 setosa 1 <tibble [10 x 4]>
2 setosa 5 <tibble [10 x 4]>
3 setosa 3 <tibble [10 x 4]>
4 setosa 4 <tibble [10 x 4]>
5 setosa 2 <tibble [10 x 4]>
我正在尝试为每个小节计算分位数。因此,计算Species == virginica
和years == 1
并计算Sepal.Length
的分位数,但是由于我选择了{{1}由整个数据组成,而不是过滤后的数据或嵌套数据。
这段代码给了我我想要的输出:
virginica_Q = map(data, ~select(.x, Sepal.Length, Sepal.Width))
我现在有data
的分位数:
iris %>%
filter(Species == "virginica") %>%
filter(years == 1) %>%
mutate(Q_vir_sep_len = ntile(Sepal.Length, 4))
我只想在所有Sepal.Length
上复制它
数据/代码
Sepal.Length Sepal.Width Petal.Length Petal.Width Species years Q_vir_sep_len
1 6.3 3.3 6.0 2.5 virginica 1 1
2 7.6 3.0 6.6 2.1 virginica 1 4
3 6.5 3.2 5.1 2.0 virginica 1 1
4 6.4 3.2 5.3 2.3 virginica 1 1
5 6.9 3.2 5.7 2.3 virginica 1 3
6 7.2 3.2 6.0 1.8 virginica 1 3
7 7.4 2.8 6.1 1.9 virginica 1 3
8 7.7 3.0 6.1 2.3 virginica 1 4
9 6.7 3.1 5.6 2.4 virginica 1 2
10 6.7 3.0 5.2 2.3 virginica 1 2
我认为对我来说解决方案很简单:
nested_tibbles
我不需要为每个分位数创建不同的小标题...
答案 0 :(得分:0)
如果您要修改嵌套的小标题,则应该这样做:
RecyclerView
然后,您可以在内部nested_iris <- iris %>%
group_by(Species, years) %>%
nest(.key = "data") %>%
mutate(data = map(data, function(df) {
mutate(df, Sepal.Length.Q4 = ntile(Sepal.Length, 4))
}))
# then looking in the first nested tibble:
nested_iris$data[[1]]
# A tibble: 10 x 5
Sepal.Length Sepal.Width Petal.Length Petal.Width Sepal.Length.Q4
<dbl> <dbl> <dbl> <dbl> <int>
1 5.1 3.5 1.4 0.2 3
2 5.4 3.9 1.7 0.4 3
3 5.4 3.7 1.5 0.2 3
4 5.7 4.4 1.5 0.4 4
5 5.4 3.4 1.7 0.2 4
6 5 3 1.6 0.2 1
7 4.8 3.1 1.6 0.2 1
8 5 3.2 1.2 0.2 2
9 5 3.5 1.3 0.3 2
10 4.8 3 1.4 0.3 1
中定义所需的任何新列。