[我想知道是否有一种方法可以指定在pmap
或命名列表上调用data.frame
时应将哪些列与哪些参数匹配。
默认行为,在大多数情况下是有用且直观的,是将列名与参数名匹配,如
check_row_deidentified <- function(encntr_key, clinical_event_key, note_value, ...) {
# Do stuff
tibble::tibble(encntr_key, clinical_event_key, note_value)
}
notes_1 <- tibble::tibble(
encntr_key = c(1,2,3),
clinical_event_key = c(1,2,3),
note_value = c("foo", "bar", "baz")
)
out <- notes_1 %>%
purrr::pmap_dfr(check_row_deidentified)
但是我想知道是否有一种方法可以给输入使用不同的列名,并指定pmap应该如何对待它们。
如:
check_row_deidentified <- function(encntr_key, clinical_event_key, note_value, ...) {
# Do stuff
}
notes_1 <- tibble::tibble(
key_enc = c(1,2,3),
key_clinical = c(1,2,3),
free_text = c("foo", "bar", "baz")
)
out <- notes_1 %>%
purrr::pmap_dfr(check_row_deidentified, encntr_key = key_enc, clinical_event_key = key_clinical, note_value = note_value)
我想一个明显的选择是在调用pmap
之前重命名那些列,如
# Given as arg
to_rename <- rlang::exprs(
note_value = free_text,
encntr_key = key_enc,
clinical_event_key = key_clinical
)
notes_1 %>%
dplyr::rename(!!!to_rename) %>%
purrr::pmap_dfr(check_row_deidentified)
但是我不确定是否存在一些较笨拙的东西
我认为我的“笨拙”解决方法足以胜任本次练习:
我想一个明显的选择是在调用
pmap
之前重命名那些列,如# Given as arg to_rename <- rlang::exprs( note_value = free_text, encntr_key = key_enc, clinical_event_key = key_clinical ) notes_1 %>% dplyr::rename(!!!to_rename) %>% purrr::pmap_dfr(check_row_deidentified)
但是我不确定是否存在一些较笨拙的东西