R 使用映射和选择从TIBLE生成TIBLE列表
我想在下面的代码中从一个tibble生成tibble列表R 使用映射和选择从TIBLE生成TIBLE列表,r,dplyr,R,Dplyr,我想在下面的代码中从一个tibble生成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
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
tbl\u列表
[[1]]
#一个tibble:2x2
身份证
1 1 -0.704
2 2 -0.917
[[2]]
#一个tibble:2x2
身份证
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
#....
谢谢!我可以成功地做到这一点。很抱歉,我不熟悉这个网站。我接受你的回答。
c("a", "b") %>% map(~select(tbl, c('id', .)))