我有一个函数,它用2 cols (X和Y)生成数据。我想使用map_dfc,但我想更改后缀"...1“、"...2”等等,因为它们的名称是相同的。
我想要(X_df1,Y_df1,X_df2,Y_df2,.)之类的东西。有后缀参数吗?我看过文件却找不到
我不想使用map_dfr,因为我需要数据帧的宽度。
example_function <- function(n1,n2){
tibble(X = n1+n2,
Y = n1*n2)
}
values <- tibble(n1 = c(1,2),
n2 = c(5,6))
map2_dfc(values$n1, values$n2, example_function)给我
A tibble: 1 x 4
X...1 Y...2 X...3 Y...4
<dbl> <dbl> <dbl> <dbl>
1 6 5 8 12我想要
A tibble: 1 x 4
X_df1 Y_df1 X_df2 Y_df2
<dbl> <dbl> <dbl> <dbl>
1 6 5 8 12谢谢!
发布于 2022-01-24 17:46:23
如果我们不想更改函数,可以在绑定cols之前使用rename --使用pmap对数据行进行循环,应用函数(example_function),用imap在list上循环,用list索引重命名tibbles的所有列,然后使用bind_cols
library(dplyr)
library(purrr)
library(stringr)
pmap(values, example_function) %>%
imap(~ {nm1 <- str_c('_df', .y)
rename_with(.x, ~ str_c(., nm1), everything())
}) %>%
bind_cols-output
# A tibble: 1 × 4
X_df1 Y_df1 X_df2 Y_df2
<dbl> <dbl> <dbl> <dbl>
1 6 5 8 12https://stackoverflow.com/questions/70837971
复制相似问题