R 在tible列上循环时获取映射循环元素的名称
我想在使用map循环时提取当前列的列名。例如,如果某些变量:R 在tible列上循环时获取映射循环元素的名称,r,dplyr,tidyverse,purrr,R,Dplyr,Tidyverse,Purrr,我想在使用map循环时提取当前列的列名。例如,如果某些变量: library(tidyverse) d <- tibble(a = runif(10), b = runif(10), c = runif(10)) l <- list(a = list(min = -19, max = 20), b = list(min = 22, max = 55), c = list(min = 80, max = 120)) restore <- function(x, r) x * (r
library(tidyverse)
d <- tibble(a = runif(10), b = runif(10), c = runif(10))
l <- list(a = list(min = -19, max = 20), b = list(min = 22, max = 55), c = list(min = 80, max = 120))
restore <- function(x, r) x * (r$max - r$min) + r$min
my_cols <- c("a", "c")
d %>%
select(!!!my_cols) %>%
map(~restore(.x, l[[name(.x)]]))
# Error in name(.x) : could not find function "name"
库(tidyverse)
d使用imapfrompurr
轻松操作
请注意,使用公式快捷方式时,第一个参数是值(.x
),第二个参数是位置/名称(.y
)
有关详细信息,请参阅imap
上的帮助页面。但实际上,如果要迭代的对象有名称,那么函数的第二个参数(.y
)就是名称(否则就是位置)
库(TIBLE)
图书馆(purrr)
图书馆(dplyr)
你能告诉我,.y
为什么是这个栏目的名称吗?(第一个元素是值,imap的第二个元素是位置,如果顺序相同,我很好?)