gpt4 book ai didi

r - 使用 map 并选择从 tibble 生成 tibble 列表

转载 作者:行者123 更新时间:2023-12-04 10:51:45 28 4
gpt4 key购买 nike

我想在以下代码中生成一个 tibble 列表。

tbl = tibble(id=1:10, a = rnorm(10), b = rnorm(10))
tbl_list = c("a", "b") %>% map(~ tbl %>% select(c("id", .)))

我想要的输出是
tbl_list

[[1]]
# A tibble: 2 x 2
id a
<int> <dbl>
1 1 -0.704
2 2 -0.917

[[2]]
# A tibble: 2 x 2
id a
<int> <dbl>
1 1 -0.704
2 2 -0.917

但是,它显示错误消息,

" c("id", .) 必须计算为列位置或名称,而不是列表",

所以似乎 .不是一个字符,而是一个列表

你能告诉我如何避免这个错误吗?

最佳答案

您可以使用 .x访问元素

library(tidyverse)
c("a", "b") %>% map(~ tbl %>% select(c("id", .x)))

#[[1]]
# A tibble: 10 x 2
# id a
# <int> <dbl>
# 1 1 1.42
# 2 2 1.51
# 3 3 -0.385
#...

#[[2]]
# A tibble: 10 x 2
# id b
# <int> <dbl>
# 1 1 1.42
# 2 2 0.100
# 3 3 1.28
#....

您也可以使用 .但是在链式操作中使用它时 .指的是位于链左侧的对象,即 tbl在这种情况下,因此它返回一个错误。使用 .一种方法是
c("a", "b") %>% map(~select(tbl, c('id', .)))

关于r - 使用 map 并选择从 tibble 生成 tibble 列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59450817/

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