gpt4 book ai didi

r - 使用 group_split,将单个值添加到列表中的每个项目以循环和累加

转载 作者:行者123 更新时间:2023-12-01 23:19:30 25 4
gpt4 key购买 nike

我有一个使用 dplyr 的 group_split 函数的分组数据框,例如

mylist <- diamonds %>% group_by(cut, color) %>% group_split

列表项是按顺序排列的数字。我的目标是最终映射每个项目并“建立”或积累一个值,例如每个的最低价格。

例如,mylist 中的第一项是:

mylist[1]
<list_of<
tbl_df<
carat : double
cut : ordered<90576>
color : ordered<bd2ad>
clarity: ordered<ecdea>
depth : double
table : double
price : integer
x : double
y : double
z : double
>
>[1]>
[[1]]
# A tibble: 163 x 10
carat cut color clarity depth table price x y z
<dbl> <ord> <ord> <ord> <dbl> <dbl> <int> <dbl> <dbl> <dbl>
1 0.75 Fair D SI2 64.6 57 2848 5.74 5.72 3.7
2 0.71 Fair D VS2 56.9 65 2858 5.89 5.84 3.34
3 0.9 Fair D SI2 66.9 57 2885 6.02 5.9 3.99
4 1 Fair D SI2 69.3 58 2974 5.96 5.87 4.1
5 1.01 Fair D SI2 64.6 56 3003 6.31 6.24 4.05
6 0.73 Fair D VS1 66 54 3047 5.56 5.66 3.7
7 0.71 Fair D VS2 64.7 58 3077 5.61 5.58 3.62
8 0.91 Fair D SI2 62.5 66 3079 6.08 6.01 3.78
9 0.9 Fair D SI2 65.9 59 3205 6 5.95 3.94
10 0.9 Fair D SI2 66 58 3205 6 5.97 3.95
# … with 153 more rows

假设我想在这个列表项旁边添加一个变量,它是分组的最低价格,有没有办法让 mylist[1] 不仅包含一个 tbl,还包含另一个该组商品的最低价格是多少?

如果有一个“更好”的方法来做我最终想做的事情,我计划对我的列表做的是 purrr::map 在每个项目上并应用一个函数,它同时接受这两个列表项 tbl 和该组的单个数值 min(price),然后通过循环传递最低价格,在每次迭代时将其添加 nrow(tbl) 次。

根据我的目标构建 mylist 的最佳方式是什么?

最佳答案

也许,我们可以通过遍历 list 来创建一个命名的 list

library(purrr)
out <- map(mylist, ~ list(data = ., min_price = min(.$price)))

-检查

> out[[1]]$data
# A tibble: 163 x 10
carat cut color clarity depth table price x y z
<dbl> <ord> <ord> <ord> <dbl> <dbl> <int> <dbl> <dbl> <dbl>
1 0.75 Fair D SI2 64.6 57 2848 5.74 5.72 3.7
2 0.71 Fair D VS2 56.9 65 2858 5.89 5.84 3.34
3 0.9 Fair D SI2 66.9 57 2885 6.02 5.9 3.99
4 1 Fair D SI2 69.3 58 2974 5.96 5.87 4.1
5 1.01 Fair D SI2 64.6 56 3003 6.31 6.24 4.05
6 0.73 Fair D VS1 66 54 3047 5.56 5.66 3.7
7 0.71 Fair D VS2 64.7 58 3077 5.61 5.58 3.62
8 0.91 Fair D SI2 62.5 66 3079 6.08 6.01 3.78
9 0.9 Fair D SI2 65.9 59 3205 6 5.95 3.94
10 0.9 Fair D SI2 66 58 3205 6 5.97 3.95
# … with 153 more rows
> out[[1]]$min_price
[1] 536

关于r - 使用 group_split,将单个值添加到列表中的每个项目以循环和累加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68291036/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com